2

すべてのポリゴンに同じプロパティを適用したい:

Polygon polygon = new Polygon();
polygon.StrokeThickness = 2;
polygon.Stroke = Brushes.Black;
polygon.Fill = (Brush)FindResource("HatchBrush");
polygon.ToolTip = (Image)FindResource("GapImg");

これどうやってするの?

4

2 に答える 2

2

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を見つける必要さえありません。

于 2012-06-15T12:53:53.740 に答える
1

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に置き換える必要があります。

于 2012-06-15T13:04:47.287 に答える