首页 > 解决方案 > 如何在 WPF 中设置形状描边的可见性

问题描述

我正在尝试为我实现的孔板可视化实现突出显示功能。可视化如下所示: 可视化

我已经设法根据属性将小瓶划掉,但现在我需要根据数据网格中一行的选择突出显示一个小瓶。该行的选定状态已分配给选定样本。现在我只需要知道如何更改椭圆的 Stroke 属性的可见性。

我的想法是这样的:

<Ellipse Fill="{Binding Color}"
        Stretch="Uniform"
        Margin="0.5"
        StrokeThickness="5">
    <Ellipse.Style>
        <Style TargetType="Ellipse">
            <Setter Property="Stroke" Value="AliceBlue"/>
            <Setter Property="Visibility" Value="Hidden"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding Selected}" Value="True">
                    <Setter Property="Visibility" Value="Visible"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Ellipse.Style>
</Ellipse>                  

但是在这里,可见性被分配给完整的椭圆,因此完整的椭圆将被隐藏。

在此处输入图像描述

但我不能选择 Stroke 作为 Style TargetType。你能帮忙的话,我会很高兴。谢谢

标签: c#wpf

解决方案


感谢LoccidSinatr提供了改变厚度而不是可见度的技巧。代码现在看起来像这样并且工作正常:

<Ellipse Fill="{Binding Color}"
        Stretch="Uniform"
        Margin="0.5"
        Stroke="#002f5d">
    <Ellipse.Style>
        <Style TargetType="Ellipse">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Selected}" Value="True">
                    <Setter Property="StrokeThickness" Value="5"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Ellipse.Style>
</Ellipse>

推荐阅读