应用程序的WPF全局资源字典

jmo0nnb3  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(111)

我试图提高我的Windows应用程序(c#,WPF,MVVM)的可维护性和一致性
目前,在每个窗口/用户控件中,我正在为应用程序样式和主题加载ResourceDictionary,如下所示:

<Window.Resources>
    <ResourceDictionary Source="pack://application:,,,/MyApp;component/Theming/ApplicationStyle.xaml" />
  </Window.Resources>

字符串
我正试图使这是全球设置的东西,而不是在一个文件级别。
我在网上读到,我应该能够在app.xaml文件中声明资源字典,但我的应用程序没有这个,如果我尝试添加一个,我会得到一个错误:
x1c 0d1x的数据
我的应用程序有:



下面是我的app.csproj文件的基本内容:


有没有一种方法可以在Program.cs或App.cs中定义resourceDictionary,或者有没有一种方法可以绕过我看到的错误?

xxe27gdn

xxe27gdn1#

您的WPF应用程序也有App.xaml文件,您可以在那里安排全局资源字典:
范例:

<Application
    x:Class="XXXXXXX"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:YYYYYY"
    xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
    Startup="App_OnStartup">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <materialDesign:BundledTheme
                    BaseTheme="Light"
                    PrimaryColor="Blue"
                    SecondaryColor="Lime" />
                <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
                <ResourceDictionary Source="pack://application:,,,/XamlFlair.WPF;component/DefaultAnimations.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>

字符串

相关问题