如何移动App.xaml而不是打破设计师?

我有WPF项目和App.xaml中定义的一些资源,用于其他文件。 当我尝试将App.xaml移动到子目录设计器时,无法再找到这些资源。 我的项目仍在编译,因为我使用’Startup’事件而不是’StartupUri’。 如何告诉设计师在哪里搜索资源? 当App.xaml位于项目的根目录时,它如何知道它们在哪里?

更新:项目文件:

App.xaml中:

     

App.xaml.cs

 namespace WpfApplication1 { public partial class App : System.Windows.Application { private void startup(object sender, System.Windows.StartupEventArgs e) { new MainWindow().Show(); } } } 

MainWindow.xaml:

  

MainWindow.xaml.cs

 namespace WpfApplication1 { public partial class MainWindow : System.Windows.Window { public MainWindow() { InitializeComponent(); } } } 

更新2:上传的压缩解决方案到http://zalil.ru/30771604 (下载将自动启动)

镜像: http : //www.speedyshare.com/files/27697250/WpfApplication1.zip

我不能在我的问题上复制这个问题。 这是我尝试过的:

我在App.xaml的资源中创建了一个带有样式的应用程序。 我将App.xaml移动到了一个子目录。 我有另一个窗口,它使用App.xaml资源中定义的样式(他驻留在不同的目录中),它能够很好地解决它。 我将.. \添加到我原来的StartupUri的开头。

我做了一些搜索,你使用的是什么版本的Visual Studio? 显然,在VS2008中可能存在与您的问题相关的错误:

http://bengribaudo.com/blog/2010/08/19/106/bug-single-application-resources-entry-ignored

他说这个bug的解决方法是在Application上设置x:Name属性。 希望有所帮助!

编辑:我也尝试处理Startup事件,而不是使用StartupUri ,它仍然工作正常。

 public partial class App : Application { private void Application_Startup(object sender, StartupEventArgs e) { new MainWindow().Show(); } } 

编辑第2部分:

好的,我将SolidColorBrush包含在ResourceDictionary中:

    

窗户拿起刷子。 设计师不喜欢它,但是当我从StaticResource更改为DynamicResource时,它停止了抱怨。

编辑3:

我只是想到了什么。 你有VS2010 SP1吗? 它修复了设计师的一些错误 。

抱歉,我的第2号编辑没有按预期工作。 我注意到我的蓝色波浪线在xaml中消失了,但我没有检查设计师。 x__x

1 。 将App.xaml移动到您想要的位置

App.xaml已移动

2 。 重构App.xaml.cs命名空间以适应新的更改:

重构其命名空间

3 。 重建您的解决方案。

[4]。 转到项目属性并将Startup对象设置为新位置的App.xaml文件。

将Startup对象设置为App.xaml

[5]。 运行您的应用程序,它应该成功运行:)