すべてのポリゴンに同じプロパティを適用したい:
Polygon polygon = new Polygon();
polygon.StrokeThickness = 2;
polygon.Stroke = Brushes.Black;
polygon.Fill = (Brush)FindResource("HatchBrush");
polygon.ToolTip = (Image)FindResource("GapImg");
これどうやってするの?
Style
プロパティを使用できます。
リソース ディクショナリでスタイルを定義します。
<Style x:Key="PolygonStyle" TargetType="Polygon">
<Setter Property="Stroke" Value="Black" />
<Setter Property="StrokeThickness" Value="2" />
<Setter Property="Fill" Value="{StaticResource HatchBrush}" />
<Setter Property="ToolTip" Value="{StaticResource GapImg}" />
</Style>
そして、それぞれにFindResourcePolygon
を使用します。
Polygon polygon = new Polygon()
{
Style = FindResource("PolygonStyle") as Style,
};
すべてのポリゴンにスタイルを適用する必要がある場合は、を削除するだけで、リソースのrun-timex:Key
を見つける必要さえありません。
XAMLで指定したスタイルをApp.xamlファイルに配置します。
<Application x:Class="WpfApplication10.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
<!-- Demo resources -->
<SolidColorBrush x:Key="HatchBrush" Color="Red"/>
<Image x:Key="GapImg" Source=".."/>
<Style x:Key="PolygonStyle" TargetType="Polygon">
<Setter Property="Stroke" Value="Black" />
<Setter Property="StrokeThickness" Value="2" />
<Setter Property="Fill" Value="{StaticResource HatchBrush}" />
<Setter Property="ToolTip" Value="{StaticResource GapImg}"/>
</Style>
</Application.Resources>
</Application>
リソースHatchBrushとGapImgが実行時に作成される場合は、StaticResource行をDynamicResourceに置き換える必要があります。