gpt4 book ai didi

wpf - 如何覆盖特定主题中的样式

转载 作者:行者123 更新时间:2023-12-04 21:05:06 27 4
gpt4 key购买 nike

我正在尝试覆盖主题文件中基本控件(TextBox、ComboBox)的默认样式。
像这样:

在主题/经典.xaml

<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Background" Value="Black"/>
</Style>

在主题/Aero.NormalColor.xaml
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Background" Value="Green"/>
</Style>

但这似乎不起作用。我总是得到默认的样式,没有任何变化。我什至用特定的键尝试过
喜欢
<Style x:Key="DefaultTextBoxStyle" TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Background" Value="Green"/>
</Style>

并在 xaml 中声明控件时始终使用此键。似乎没有任何效果。

如果我将样式放在 application.xaml 文件中,我没有问题,但我希望此样式与主题相关。
顺便说一句,它适用于我自己的用户控件。

有人可以告诉我我在这里做错了什么吗?

我知道一个解决方案可能是使用一个类来查看我使用的主题并使用某种触发器,但我真的很想在 xaml 中做到这一点。

谢谢

最佳答案

您是否在某处引用了您的主题?
例如

<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Test.App">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Simple Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>

另外,不要在主题中使用 x:Key ,除非它只是在主题内被另一种样式引用的子样式。

关于wpf - 如何覆盖特定主题中的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4662052/

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