gpt4 book ai didi

wpf - 如何更改 WPF CheckBox 控件中 CheckMark 的颜色?

转载 作者:行者123 更新时间:2023-12-03 16:18:11 26 4
gpt4 key购买 nike

我有一个自定义模板复选框,我正在使用 View 框(使用 View 框允许简单缩放)实现它,我无法弄清楚如何更改选中/取消选中复选框时显示的内容。

我希望选中时复选标记为红色(不是最终外观,只是想看看它是否有效)。

我的复选框样式:

<Style x:Key="KioskCheckBox" TargetType="{x:Type CheckBox}">
<Setter Property="FontFamily" Value="{StaticResource FontFamilyLight}" />
<Setter Property="FontSize" Value="{StaticResource KioskNormalFontSize}" />
<Setter Property="Foreground" Value="{StaticResource brshSystemTextColor}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="CheckBox">

<!--<Viewbox HorizontalAlignment="Left"
VerticalAlignment="Top"
Stretch="Fill"
Height="30"
Width="30" Margin="10,0,0,0">
<Grid Height="200" Width="200">
<Ellipse
Fill="Transparent"
StrokeThickness="15"
Stroke="{StaticResource brshSystemTextColor}"/>
<Path
Stroke="{StaticResource brshSecondaryColor}"
Fill="Transparent"
Stretch="None"
StrokeThickness="20"
Data="M 30,100 L 80,140 L 160,60" Margin="0,0,2,2"/>
</Grid>
</Viewbox>-->
<ContentControl>
<StackPanel Orientation="Horizontal">
<Viewbox HorizontalAlignment="Left"
VerticalAlignment="Center"
Stretch="Fill"
Height="30"
Width="30" Margin="10,0,0,0">
<Grid Height="200" Width="200">
<Ellipse
Fill="Transparent"
StrokeThickness="15"
Stroke="{StaticResource brshSystemTextColor}"/>
<Path
Stroke="{StaticResource brshSecondaryColor}"
Fill="Transparent"
Stretch="None"
StrokeThickness="20"
Data="M 30,100 L 80,140 L 160,60" Margin="0,0,2,2"/>
</Grid>
</Viewbox>
<TextBlock Text="{TemplateBinding Content}" Margin="10,0,0,0" />
</StackPanel>
</ContentControl>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">

<!-- Running into problems here. -->

</Trigger>
<Trigger Property="IsChecked" Value="False">

</Trigger>
</ControlTemplate.Triggers>

</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

最佳答案

寻找原始模板 ( here )。这是定义颜色的部分:

<Path Visibility="Collapsed"
Width="7"
Height="7"
x:Name="CheckMark"
SnapsToDevicePixels="False"
StrokeThickness="2"
Data="M 0 0 L 7 7 M 0 7 L 7 0">
<Path.Stroke>
<SolidColorBrush Color="{DynamicResource GlyphColor}" />
</Path.Stroke>
</Path>

对不起,对不起,再次对不起......我想这就是你要找的:
<ControlTemplate TargetType="CheckBox">
<Grid>
<Path x:Name="Equis"
Opacity="0"
Stroke="Red"
Fill="Red"
Stretch="UniformToFill"
StrokeThickness="20"
Data="M 30,100 L 80,140 L 160,60"
Margin="0,0,2,2" />
<ContentPresenter Margin="4"
HorizontalAlignment="Left"
VerticalAlignment="Top" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked"
Value="true">
<Setter TargetName="Equis"
Property="Opacity"
Value="1" />
</Trigger>
<Trigger Property="IsChecked"
Value="false">
<Setter TargetName="Equis"
Property="Opacity"
Value="0" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>

关于wpf - 如何更改 WPF CheckBox 控件中 CheckMark 的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9727140/

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