如何将启动uri属性设置为wpf项目中文件夹中的另一个窗口

时间:2013-08-12 05:39:52

标签: wpf startup-folder

在我的wpf项目中,我创建了一个名为practice的文件夹,在该文件夹中我添加了一个窗口,现在我想运行该窗口,所以在app.xaml文件中我将启动uri设置为foldername.window.xaml但是它是说构建动作属性没有设置为资源。

为此我将构建动作属性设置为资源。现在这次显示错误消息,初始化的组件在当前上下文中不存在。

当我们在wpf项目中创建单独的文件夹并且文件夹包含窗口或页面时,您能告诉我们需要设置哪些属性。以及如何在其他页面或App.Xaml文件startupUri Property中访问这些页面。

2 个答案:

答案 0 :(得分:14)

如果项目结构中有文件夹,则应使用“/”而不是“。”,因此它是foldername/window.xaml

(我希望顺便说一下,它实际上并没有调用window.xaml。这对于WPF项目中的类型来说是一个令人困惑的名称,因为它有一个名为Window的内置类型。)

将构建操作设置为Resource会使事情变得更糟:不仅使用了错误的名称,现在您已将构建操作更改为错误的XAML。 .xaml文件的正确构建操作通常为Page。 (App.xaml是该规则的一个例外。)Page构建操作导致页面被编译成二进制表示(称为BAML),然后可以通过调用加载该二进制格式代码隐藏中的InitializeComponent,或Application.LoadComponent

将构建操作设置为Resource只会直接在项目中嵌入XAML源的副本,这对您没有帮助 - 如果您想拥有代码隐藏文件,则无法使用该窗体中的XAML。 (无论如何,不​​是在WPF中。它与其他基于XAML的框架(如WinRT)不同。)

由于Page是新添加窗口的默认构建操作,因此实际上根本不需要设置任何属性。您只需要使用/作为文件夹边界。

答案 1 :(得分:1)

如果XAML位于任何文件夹中,则启动URL的定义如下。

enter image description here

这就是它的定义方式。 enter image description here