如何为 ac# .net WPF 应用程序设置主题

C. *_*dds 0 .net c# wpf themes

我注意到,当有人从 Windows 10 运行我的应用程序(我使用 Windows 7 制作)时,按钮变得未对齐,我认为发生这种情况的唯一原因是因为在不同的操作系统上运行时默认使用不同的主题。操作系统。

我将如何设置默认主题而不是让它根据运行的操作系统进行选择?

很多其他类似的问题都引用了 app.xaml 文件?但我似乎没有这个,这是自动生成的还是我必须自己添加的东西?

mm8*_*mm8 5

WPF 控件的默认模板在不同版本的 Windows 上看起来不同。

如果您在 Visual Studio 中添加引用并将其属性PresentationFramework.Aero.dll设置为,则可以通过添加合并到您的应用程序来应用 Windows 7 主题:Copy LocaltrueResourceDictionaryApp.xaml

<Application ...>
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>
Run Code Online (Sandbox Code Playgroud)

除此之外Aero,还有一些其他主题(及其相应的程序集)可用:

<ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml"/>
<ResourceDictionary Source="/PresentationFramework.Classic;component/themes/Classic.xaml"/>
<ResourceDictionary Source="/PresentationFramework.Royale;component/themes/Royale.NormalColor.xaml"/>
<ResourceDictionary Source="/PresentationFramework.Luna.Homestead;component/themes/Luna.Homestead.xaml"/>
<ResourceDictionary Source="/PresentationFramework.Luna.Metallic;component/themes/Luna.Metallic.xaml"/>
<ResourceDictionary Source="/PresentationFramework.Zune;component/themes/Zune.NormalColor.xaml"/>
Run Code Online (Sandbox Code Playgroud)