在WPF应用程序中,我在Style
中定义了一个App.xaml
,并在其他页面上使用了它。但是我想将项目编译为.dll,这需要删除App.xaml
。因此,我需要将Style
放置在其他位置(最好放置在全局位置,而不是放置在我制作的每个页面中)。我可以在哪里放置它以及如何使用它?
顺便说一下,我正在使用MvvmCross,但是我认为这无关紧要。
答案 0 :(得分:1)
基本上,您可以在任何适合的地方创建一个包含<ResourceDictionary>
的新xaml,然后可以将这些资源字典加载到任何您想要的地方:
<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="myresourcedictionary.xaml"/>
<ResourceDictionary Source="myresourcedictionary2.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Page.Resources>
更多详细信息here
答案 1 :(得分:0)
对于全局声明,如果看到为App.Xaml生成的cs文件,则将看到类似于WindowsForm的Program.cs文件(与Form子类代码混合)。
这是此文件的一部分:(App.i.g.cs)
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
#line 7 "..\..\App.xaml"
this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
#line default
#line hidden
System.Uri resourceLocater = new System.Uri("/WpfPlayground;component/app.xaml", System.UriKind.Relative);
#line 1 "..\..\App.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
实际上,以下行将强制应用程序将您的特定resouceDictionary文件用作Global ResourceDictionary。
System.Windows.Application.LoadComponent(this, resourceLocater);
如果您创建一个符合App.xaml文件的文件(您知道这是EXE文件的主要入口点),则不必依赖此文件。
注意::App.i.g.cs是自动生成的,您必须遵守App.XAML规则。