我想根據資料模板觸發器顯示不同的多邊形。
(PS:不要看 Circle 的點集合,我知道它看起來根本不像一個圓圈 ;-))
<ContentControl.Resources>
<Polygon
x:Key="Circle"
Grid.Column="0"
Stretch="Fill" Stroke="Black" StrokeThickness="1" Fill="DarkGray"
Width="25" Height="25" Points=" 0,50 25,100 75,100" />
<Polygon
x:Key="Hexagon"
Grid.Column="0"
Stretch="Fill" Stroke="Black" StrokeThickness="1" Fill="DarkGray"
Width="25" Height="25" Points=" 0,50 25,100 75,100 100,50 75,0 25,0 0,50" />
<Polygon Name="path" Grid.Column="0" Stretch="Fill" Stroke="Black" StrokeThickness="1" Fill="DarkGray"
Width="25" Height="25" />
然后我想更改資料模板觸發器上的多邊形。
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding SimulationType}" Value="{x:Static vm:SimulationType.ServerSimulated}">
<DataTrigger.Setters>
<Setter TargetName="path" Property="Points" Value="{StaticResource Hexagon}"/>
</DataTrigger.Setters>
</DataTrigger>
<DataTrigger Binding="{Binding SimulationType}" Value="{x:Static vm:SimulationType.ServerInSimulation}">
<DataTrigger.Setters>
<Setter TargetName="path" Property="Points" Value="{StaticResource Circle}"/>
</DataTrigger.Setters>
</DataTrigger>
</DataTemplate.Triggers>
這將拋出一個運行時例外,因為我試圖將一個整體Polygon
放入一個PointsCollection
不可能的地方。但是我到底要怎樣才能達到我想要的呢?
我似乎無法弄清楚是否以及如何PointsCollection
在 xaml 中定義 a 。也不可能在整個Polygon
.
如何替換資料模板觸發器中多邊形的點?
uj5u.com熱心網友回復:
假設目標是 a Polygon
,您可以將 a 定義PointCollections
為Point
s 的集合并將其設定為Points
Property。
<Window.Resources>
<PointCollection x:Key="HexagonPoints">
<Point X="0" Y="50"/>
<Point X="25" Y="100"/>
<Point X="75" Y="100"/>
<Point X="100" Y="50"/>
<Point X="75" Y="0"/>
<Point X="25" Y="0"/>
<Point X="0" Y="50"/>
</PointCollection>
</Window.Resources>
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/537488.html
標籤:wpf