在Setter中无法识别或访问Path.Data属性

时间:2017-09-29 12:13:55

标签: c# wpf xaml

我在 wbSource_WS.Range(Cells(Row_SourceStart, Col_Source), Cells(Row_SourceEnd, Col_Source)).Copy Destination:= _ wbSTarget_WS.Range(Cells(Row_TargetStart, Col_TargetStart), Cells(Row_TargetStart, Col_TargetEnd)).PasteSpecial(Paste:=xlPasteValues, Transpose:=True) 内托管Path,并希望根据包含该控件的窗口的Button动态更改Data属性,因此我结束了使用以下XAML代码:

WindowState

不幸的是我收到错误消息<Path SnapsToDevicePixels="True" Data="F1M0,0L0,9 9,9 9,0 0,0 0,3 8,3 8,8 1,8 1,3z" Fill="Black"> <Path.Style> <Style> <Style.Triggers> <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type system:Window}}, Path=WindowState}" Value="Maximized"> <Setter Property="Data" Value="F1M0,10L0,3 3,3 3,0 10,0 10,2 4,2 4,3 7,3 7,6 6,6 6,5 1,5 1,10z M1,10L7,10 7,7 10,7 10,2 9,2 9,6 6,6 6,9 1,9z" /> </DataTrigger> </Style.Triggers> </Style> </Path.Style> </Path> ,我不明白为什么会出现此错误,我也找不到解决方法。

1 个答案:

答案 0 :(得分:1)

您遗失TargetType

另请注意,如果您为Data设置了本地值,则触发器中的setter无法更改它,因此您需要一个样式的setter

<Path SnapsToDevicePixels="True" Fill="Black">
    <Path.Style>
        <Style TargetType="Path">
            <Setter Property="Data" Value="F1M0,0L0,9 9,9 9,0 0,0 0,3 8,3 8,8 1,8 1,3z"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type system:Window}}, Path=WindowState}" Value="Maximized">
                    <Setter Property="Data" Value="F1M0,10L0,3 3,3 3,0 10,0 10,2 4,2 4,3 7,3 7,6 6,6 6,5 1,5 1,10z M1,10L7,10 7,7 10,7 10,2 9,2 9,6 6,6 6,9 1,9z" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Path.Style>
</Path>