gpt4 book ai didi

c# - 如何覆盖样式

转载 作者:行者123 更新时间:2023-11-30 12:26:15 31 4
gpt4 key购买 nike

我在我的 WPF ModernUI 应用程序中使用扩展 WPF 工具包中的 DecimalUpDown 控件:

enter image description here

<xctk:DecimalUpDown Value="{Binding myProperty}" Increment="1"  Maximum="10" Minimum="0" />

让我感到困扰的是:如果选择了强调色,例如红色,那么标准的 ModernUI 控件(例如文本框)会很好地适应该颜色:

enter image description here

然而,DecimalUpDown 控件坚持其样式。例如,控件在事件时为蓝色,并且控件中使用的 RepeatButtons 看起来不像 ModernUI 按钮:

enter image description here

更糟糕的是:View 中放置 DecimalUpDown 控件的所有 TextBox 现在都呈现这种样式,并且以蓝色而不是红色突出显示:

enter image description here

我该如何改变它?

编辑:这是我听从 Ben 的好建议时生成的 ControlTemplate:

        <ControlTemplate x:Key="ControlControlTemplate1" TargetType="{x:Type Control}">
<xctk:ButtonSpinner x:Name="PART_Spinner" AllowSpin="{Binding AllowSpin, RelativeSource={RelativeSource TemplatedParent}}"
...>
<xctk:WatermarkTextBox x:Name="PART_TextBox" AutoMoveFocus="{Binding AutoMoveFocus, RelativeSource={RelativeSource TemplatedParent}}"
AutoSelectBehavior="{Binding AutoSelectBehavior, RelativeSource={RelativeSource TemplatedParent}}"
AcceptsReturn="False"
.../>
</xctk:ButtonSpinner>
<ControlTemplate.Triggers>
...
</ControlTemplate.Triggers>
</ControlTemplate>

然后可以设置 WatermarkTextBox 和 ButtonSpinner 的样式:

enter image description here

到目前为止我还没有管理的内容:有没有办法访问 ButtonSpinner 中的 RepeatButtons,以便我也可以设置它们的样式?

最佳答案

可能需要编写您自己的模板并在其中定义颜色。有时没有直接的方法来更改属于 UI 元素一部分的属性。尝试编辑模板的副本并搜索蓝色值。右键单击 DecimalUpDown 并转到编辑模板 Edit Template

如果那里没有设置颜色值,则可能是通过 System.Colors(例如 ActiveBorderBrush)设置的

<SolidColorBrush x:Key="{x:Static SystemColors.ActiveBorderBrush}" Color="Orange" />

System.Colors 定义了控件处于事件状态、高亮显示等时的一些标准行为。MSDN 列出了所有现有的: https://msdn.microsoft.com/en-us/library/system.windows.systemcolors%28v=vs.110%29.aspx

关于c# - 如何覆盖样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29661777/

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