3

これを自分で完全にテストする時間がないので、コントロールのプロパティとスタイルを使用してコントロールの外観を定義すること (またはその逆) にパフォーマンスやメモリの利点があるかどうかを他の誰かが既に知っていることを願っています。

オプション1:

<Border Background="White" BorderBrush="Black" BorderThickness="2" CornerRadius="20">
    ...
</Border>

オプション #2:

<Style x:Key="BorderStyle" TargetType="Border">
    <Setter Property="Background" Value="White"/>
    <Setter Property="BorderBrush" Value="Black"/>
    <Setter Property="BorderThickness" Value="2"/>
    <Setter Property="CornerRadius" Value="20"/>
</Style>

<Border Style="{StaticResource BorderStyle}">
    ...
</Border>

私はそれらの利点を理解しているので、再利用性について尋ねていないことに注意してください. 特定のコントロールに固有で再利用されない「ワンオフ」スタイルについて特に疑問に思っています。

もう 1 つの例は、余白のある 2 番目の Border がある場合です。Border が上記と同じスタイルを使用し、Margin プロパティを直接設定するようにすると、パフォーマンスが向上し、必要なメモリが少なくて済みますか、それとも新しいセッターを使用して最初の Style リソースに基づいて 2 番目の Style リソースを作成する必要がありますか?

4

2 に答える 2

0

1 つの場所でのみ使用するプロパティのコレクションに Style 構文を使用すると、メモリ効率は向上しませんが、コードの読みやすさは向上します。メインの XAML コードが少しすっきりします。リソース ディクショナリ スタイルとローカルに定義された依存関係プロパティの使用による実行速度の違いを認識したことはありません。

2 番目の質問に対しては、認識できる速度の違いはありませんが、ローカル プロパティを指定することで、任意のリソース ディクショナリ プロパティをオーバーライドできます。そのようにスタイルを使用すると、メモリ効率が非常に低下します。

于 2013-08-24T15:03:40.880 に答える