更新切换按钮在代码中的外观(样式设置在xaml中)不工作

本文关键字:设置 样式 工作 xaml 按钮 代码 更新 外观 | 更新日期: 2023-09-27 18:02:27

我的应用程序中有几个平面切换按钮,它们继承了与下面相同的样式:

<Style x:Key="TButtonStyle" BasedOn="{StaticResource {x:Static ToolBar.ToggleButtonStyleKey}}" TargetType="ToggleButton">
    <Setter Property="HorizontalAlignment" Value="Left"/>
    <Setter Property="VerticalAlignment" Value="Top"/>
    <Setter Property="FontFamily" Value="Tahoma"/>
    <Setter Property="FontSize" Value="11"/>
    <Setter Property="Height" Value="26"/>
    <Setter Property="Width" Value="50"/>
    <Setter Property="BorderBrush" Value="#FFC7C7C7"/>
    <Setter Property="Foreground" Value="Black"/>
    <Setter Property="Background">
        <Setter.Value>
            <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                <GradientStop Color="#FFCFCFCF" Offset="0"/>
                <GradientStop Color="White" Offset="1"/>
            </LinearGradientBrush>
        </Setter.Value>
    </Setter>
    <Style.Triggers>
        <Trigger Property="IsPressed" Value="True">
            <Setter Property="BorderThickness" Value="2"/>
        </Trigger>
        <Trigger Property="IsPressed" Value="False">
            <Setter Property="BorderThickness" Value="1"/>
            </Trigger>
    </Style.Triggers>
</Style>

在我做了某些更新之后(例如,当一个进程被执行时,TButton。背景= system . windows . media .画笔。蓝色,它工作),我想把切换按钮变回原来的样子,但它不起作用。下面是我如何把样式改回原来的样式:

TButton.Style = (Style)FindResource("TButtonStyle");
有什么建议可以解决这个问题吗?是因为"StaticResource"吗?

更新切换按钮在代码中的外观(样式设置在xaml中)不工作

如果您在代码中分配背景颜色,则它比您的样式具有更高的优先级。

清除背景颜色属性来重置它

TButton.ClearValue(Button.BackgroundProperty);