在学习F#的过程中,我发现使用FsXaml的FsEmptyWindowsApp对于构建f#系统的UI非常有用。我似乎无法克服的一个问题是,从我的创业公司MainWindow.xaml打开一个新窗口。我已经创建了一个ChildWindow.xaml,并在FsXaml中使用XAML提供程序创建了一个类型,但是当
type MainView = XAML<"MainWindow.xaml", true>
type ChildWindow = XAML<"ChildWindow.xaml",true>
type MainViewModel() as self =
inherit ViewModelBase()
...
member x.NewChildWindowCommand =
new FunCommand ((fun action ->
let cw = ChildWindow()
cw.Root.Activate() |> ignore
),
(fun canExecute -> true))当我运行声明“无法定位资源ChildWindow.xaml”的命令时,我总是会得到一个错误,我已经将它放在MainWindow.xaml上面的项目中,并在后面有它自己的代码,并且总是得到,无法找到资源错误。
我已经尝试过手动加载xaml
Application.LoadComponent(new Uri("/<asseblyname>;component;/ChildWindow.xaml",UriKind.Relative))但是同样的错误不能定位资源..。
对于如何在FsEmptyWindowsApp中使用XAML类型提供程序(XAML类型提供程序(FsEmptyWindowsApp))打开新窗口的任何帮助和解释,我们将不胜感激。或者,如果有人知道如何使用FsXaml进行页面导航,这将非常有用。我已经下载了Demos,它们中的任何一个似乎都涵盖了多页/窗口演示。
发布于 2015-02-03 11:51:49
我发现了这个问题,在新创建的xaml文件中,您需要进入属性并将构建操作设置为资源.现在一切都如期而至,真希望我能早点把这件事弄清楚,因为我逃避了几个星期。
发布于 2016-12-19 01:39:10
在FsXaml 2.x中,打开一个新窗口可以如下所示:
type ChildWindow = XAML<"ChildWindow.xaml">
//somewhere in the code
ChildWindow().Show() //open, don't wait
ChildWindow().ShowDialog() //open and wait解决方案文件ChildWindow.xaml应该将生成操作设置为“Resource”。
https://stackoverflow.com/questions/28281348
复制相似问题