我是WPF的新手。创建了一个新的WPF UserControl。看到有些人使用app.xaml文件来设置内部应用程序级别的资源。
我的解决方案包括WinForm和WPF UserControl。我没有看到任何app.xaml文件。
如何进行?
答案 0 :(得分:4)
App.xaml与WPF应用程序相关联。如果你只有一个UserControl,那么就没有应用程序可以成为它的一部分吗?
创建一个WPF应用程序,您将拥有一个App.xaml来放置应用程序级资源。
出于兴趣,如果您使用的是WPF用户控件,为什么还要使用WinForm?
编辑:重复我的评论:当您不创建WPF应用程序时,您将无法顺利获得 WPF应用程序资源。
编辑:正如安东尼布里恩的回答所指出的那样,你似乎可以破解它 - 但如果你能帮助它,我强烈建议反对这类事情。从根本上说,你正在反对平台的期望 - 而且这绝不是一个好的情况。答案 1 :(得分:4)
可以在WinForms应用程序中拥有应用程序范围的WPF资源。看http://www.wpftutorial.net/AppLevelResourcesWinForms.html
答案 2 :(得分:3)
您需要创建WPF或Silverlight应用程序才能获取该文件 您实际上在Winforms应用程序中托管WPF控件
答案 3 :(得分:3)
如果您创建了一个WinForm项目,它将没有app.xaml。
改为创建一个WPF项目。
答案 4 :(得分:2)
本文详细解释了如何在托管/互操作方案中使用应用程序范围的资源:
http://drwpf.com/blog/2007/10/05/managing-application-resources-when-wpf-is-hosted/
我选择的解决方案路径(来自文章)是将App.xaml包含为页面元素
修改项目文件:
<Page Include="App.xaml" />
<Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
添加代码:
public App()
{
InitializeComponent();
}
public static void EnsureApplicationResources()
{
if (Application.Current == null)
{
// create the Application object
new App();
}
}
完整的详细信息在文章中。