gpt4 book ai didi

WPF 禁用按钮的背景

转载 作者:行者123 更新时间:2023-12-03 10:23:54 25 4
gpt4 key购买 nike

我尝试在禁用按钮时更改按钮的样式:

    <Style TargetType="Button" x:Key="MyButton2">
<Setter Property="Background" Value="MediumAquamarine" />
<Setter Property="Foreground" Value="MediumBlue" />

<Style.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" Value="Green"/>
<Setter Property="Foreground" Value="DeepPink"/>
</Trigger>
</Style.Triggers>

</Style>

和我的按钮:
<Button Style="{StaticResource MyButton2}" Content="My text" Width="100" Height="30" IsEnabled="False" />    

但由于某种原因,这种样式不适用于按钮:

enter image description here

我如何将这种样式应用到我的按钮上?我可以在不覆盖按钮模板的情况下只使用样式吗?

最佳答案

Can I do it without overriding button's template only with styles?



我认为不是,因为 Windows 中的 Controls 有一个默认值 StylesControlTemplates并且在每个版本的 Windows 中它们都是不同的。另外,样式——只是很多设置,通常样式不会改变/添加行为来控制,这是造成这个 ControlTemplate的原因。 .
Note: Style 它是一组setter,例如:设置背景、大小等。 ControlTemplate是表单,所有这些设置都将在其中显示。

在这种情况下,我建议大家更改 ControlTemplate,无论系统版本如何,都可能具有相同的行为,即 View 。

在这种情况下,试试这个 Style :
<Window.Resources>
<Style TargetType="Button" x:Key="MyButton2">
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Background" Value="MediumAquamarine" />
<Setter Property="Foreground" Value="MediumBlue" />

<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid Background="{TemplateBinding Background}">
<ContentPresenter x:Name="MyContentPresenter"
Content="{TemplateBinding Content}"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>

<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="Green"/>
<Setter Property="Foreground" Value="DeepPink"/>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>

<Grid x:Name="LayoutRoot">
<Button Content="Button"
IsEnabled="False"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Width="75"
Style="{StaticResource MyButton2}"
Click="Button_Click"/>
</Grid>

关于WPF 禁用按钮的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25406878/

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