1

Style私は私のに以下を適用したいPolygon:

<Style xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:s="clr-namespace:System;assembly=mscorlib" 
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   TargetType="{x:Type Polygon}">

<Style.Triggers>

    <Trigger Property="Shape.IsMouseOver" Value="True">

        <Setter Property="Shape.Stroke">
            <Setter.Value>
                <SolidColorBrush>#FF000000</SolidColorBrush>
            </Setter.Value>
        </Setter>

        <Setter Property="Shape.StrokeThickness">
            <Setter.Value>
                <s:Double>2</s:Double>
            </Setter.Value>
        </Setter>

    </Trigger>

    <Trigger Property="Shape.IsMouseOver" Value="False">

        <Setter Property="Shape.StrokeThickness">
            <Setter.Value>
                <s:Double>0</s:Double>
            </Setter.Value>
        </Setter>

    </Trigger>

</Style.Triggers>


<Setter Property="Shape.Fill" Value="{x:Null}"/>  

</Style>

カーソルがポリゴンの上にあるときは黒のストロークが必要で、カーソルがポリゴンの上にないときは何も表示したくありません。このスタイルが機能しないのはなぜですか (何も表示されません)?

編集:

これは私のポリゴンです:

var pol = new Polygon();

using (FileStream stream = new FileStream("myStyle.xaml", FileMode.Open))
       pol.Style = XamlReader.Load(stream) as Style;
4

1 に答える 1

1

を に設定しないShape.FillNullください。代わりにこれを試してください。

<Setter Property="Shape.Fill" Value="Transparent"/>  
于 2012-06-26T10:49:08.033 に答える