11

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

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

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

4

2 回答 2

20

当您的项目结构中有文件夹时,您应该使用“/”而不是“.”,所以它是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 是新添加窗口的默认构建操作,因此您实际上根本不需要设置任何属性。您只需要使用/文件夹边界。

于 2013-08-12T12:15:24.007 回答
8

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

在此处输入图像描述

这就是它的定义方式。 在此处输入图像描述

于 2018-09-22T17:18:26.390 回答