wpf 设置控件isEnabled时的颜色
时间: 2024-01-24 09:04:04 浏览: 327
在 WPF 中,可以通过修改控件的 Style 来自定义控件的禁用样式。以下是一个简单的示例:
```xml
<Window.Resources>
<SolidColorBrush x:Key="DisabledBackgroundBrush" Color="#EEE" />
<SolidColorBrush x:Key="DisabledForegroundBrush" Color="#888" />
<Style x:Key="CustomButtonStyle" TargetType="Button">
<Setter Property="Background" Value="Blue" />
<Setter Property="Foreground" Value="White" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="{StaticResource DisabledBackgroundBrush}" />
<Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<Button Content="Click me" Style="{StaticResource CustomButtonStyle}" />
</Grid>
```
在此示例中,我们创建了一个名为 `CustomButtonStyle` 的样式,并为其设置了默认的背景和前景颜色。然后,在控件模板中,我们使用一个 Border 来包装按钮的内容,并设置了一些绑定属性。在触发器中,我们检查控件的 `IsEnabled` 属性是否为 False,并使用自定义颜色来设置背景和前景。注意,我们使用了一个静态资源来定义禁用时的颜色,这样我们就可以在应用程序中的任何地方重复使用这些颜色。
希望这个例子可以帮助到你!
阅读全文