我的 WPF 应用程序无法找到资源“Mainwindow.xaml”

问题描述 投票:0回答:6

我一直在使用 vb.net 开发 WPF 应用程序,最近遇到了问题。

当我构建代码时,构建成功,但在运行代码时,System.IO.IOException 抛出异常“无法定位资源 ViewModel/ViewModel/Mainwindow.xaml” .Xaml 窗口位于名为 ViewModel 的文件夹中,因此我不知道其他 ViewModel/ViewModel... 路径来自哪里,它不是应该是 viewModel/MainWindow.Xaml 吗? 我已经尝试了所有可能的解决方案,包括清理项目,但它似乎不起作用。

唯一可行的解决方案是如果我将 StartupUri 从

StartupUri = "ViewModel\MainWindow.Xaml"
StartupUri = "...\MainWindow.xaml"
但我怀疑这是否是正确的做法。

wpf vb.net xaml
6个回答
61
投票

StartupUri="MainWindow.xaml"
更改为
StartupUri="FolderName/MainWindow.xaml"

当我将主窗口移动到查看文件夹时解决了我的问题


20
投票

在我的例子中,我需要使用 pack URI 语法将 App.xaml 文件的 SrartUpUri 属性设置为指向 MainWindow.xaml 的新位置,如下所示:

   <Application x:Class="TrafficLights.Controller.App"
                xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                StartupUri="pack://application:,,,/View/MainWindow.xaml">

有关包 URI 的更多信息请参见此处:

http://msdn.microsoft.com/en-us/library/aa970069(v=vs.110).aspx

希望有帮助。祝你好运!


11
投票

这种情况在我身上发生过几次 - 总是当我将

MainWindow.xaml
移动到不同的文件夹并忘记更新
StartupUri
中的
App.xaml
时。


1
投票

Visual Studio 以某种方式将我的

MainWindow.xaml
重命名为
MainWindow(1).xaml
,所以我再次将其重命名为
MainWindow.xaml


1
投票

我将

Mainwindow.xaml
文件重命名为
NameList.xaml
并且尚未更新
App.xaml
文件。一旦我这样做了
StartupUri="NameList.xaml"
,就很好了。


0
投票

除了此处已回答的内容之外,您还可以使用更方便的 URL 格式,当您将 App.xaml 或 MainWindow 文件移动到其他文件夹时,可以防止出现此类错误。例如:

StartupUri="/Project;component/MainView/MainView.xaml"

如果您像上面一样指定完整路径,那么无论您将 App.xaml 移动到哪里,MainView.xaml 的位置都将保持正确(在项目内)。如果您移动 MainView.xaml,那么如何更新 StartupUri 也很清楚。

© www.soinside.com 2019 - 2024. All rights reserved.