我将App.xaml的构建操作更改为“页面”,因此我可以处理启动画面并确保我的应用程序仅作为单个实例运行(具有我自己的入口点)。 它在运行时工作正常,但在设计时,应用程序无法再查看我的资源。资源位于同一项目中的单独xaml文件中。 如何让我的应用再次在设计时看到资源?
由于
答案 0 :(得分:6)
将您的资源分解为一个单独的资源字典,然后将它们拉入App.xaml,如下所示:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MasterResources.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
您可以根据需要以这种方式添加多个资源词典。
您还需要在UserControls(以及使用资源引用UserControls的Windows)中执行相同的操作:
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MasterResources.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
有关此主题的更多信息,请参阅http://ithoughthecamewithyou.com/post/Merging-Resource-Dictionaries-for-fun-and-profit.aspx。
答案 1 :(得分:3)
确保将InitializeComponent()
作为应用程序构造函数的第一行:
public App()
{
// This is the method generated by VisualStudio that initializes
// the application from associated XAML file
InitializeComponent();
// Do everything else
}
答案 2 :(得分:0)
如果我理解你是正确的,那么你是在app.xaml中加载应用程序范围的资源吗?在这种情况下,你可以这样做:
App app = new App();
//Get assembly name is your own method
string assemblyName = GetAssemblyName(Assembly.GetExecutingAssembly());
Uri resourceLocater = new Uri("/" + assemblyName + ";component/app.xaml", UriKind.Relative);
System.Windows.Application.LoadComponent(app, resourceLocater);
MainWindow mainWindow = new MainWindow();
app.Run(mainWindow);
然后将加载您的资源
/丹尼尔