gpt4 book ai didi

c# - 添加自定义样式到 Mahapps.Metro 现有的

转载 作者:行者123 更新时间:2023-11-30 19:57:42 25 4
gpt4 key购买 nike

我使用 MahApps.Metro .在设置指南中,它告诉您将一些代码包含到 App.xaml 中。所以我做到了。

现在我希望能够向其中添加我自己的样式。例如,这包括默认情况下具有边框的所有窗口。

但这行不通。不应用边框。我知道在不使用 MahApps.Metro 时如何设置样式,但有了它,我无法同时工作。

这里有什么问题吗?

<Application x:Class="ProjectName.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Windows/MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
<!-- This is what I added -->
<ResourceDictionary xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro">
<Style TargetType="Controls:MetroWindow">
<Setter Property="BorderThickness" Value="1" />
<Setter Property="BorderBrush" Value="{DynamicResource AccentColorBrush}" />
</Style>
</ResourceDictionary>
<!-------------------------->
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>

最佳答案

您忘记了使用 BasedOn 继承样式:

<ResourceDictionary xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro">
<Style TargetType="Controls:MetroWindow"
BasedOn="{StaticResource {x:Type Controls:MetroWindow}}">
<Setter Property="BorderThickness" Value="1" />
<Setter Property="BorderBrush" Value="{DynamicResource AccentColorBrush}" />
</Style>
</ResourceDictionary>

编辑

经过测试,我的第一个答案并不正确。您必须设置一个 x:Key 并在每个 MetroWindow xaml 中使用此键。

<Style x:Key="CustomGlobalMetroWindow"
TargetType="{x:Type Controls:MetroWindow}"
BasedOn="{StaticResource {x:Type Controls:MetroWindow}}">
<Setter Property="BorderThickness"
Value="1" />
<Setter Property="BorderBrush"
Value="Purple" />
</Style>

用法

<Controls:MetroWindow x:Class="Demo"
Style="{DynamicResource CustomGlobalMetroWindow}" />

希望对您有所帮助!

关于c# - 添加自定义样式到 Mahapps.Metro 现有的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29124602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com