21

Color 定義を使用せずに、リソース ディクショナリ内の別の Brush から Brush 値を直接参照することはできますか (正確には、1 つのブラシ リソースを別のブラシ リソースにコピーします)?

たとえば、次のブラシ定義があります。

<SolidColorBrush x:Key="PanelBackgroundBrush" Color="White"/>

そして、「PanelBackgroundBrush」とまったく同じにしたい他のブラシがいくつかあります。

<SolidColorBrush x:Key="FolderColor" [BrushToCopy]="{StaticResource PanelBackgroundBrush}"/>

「PanelBackgroundBrush」と「FolderColor」の両方が白を使用しているように。

これは、一般的な Color 定義を使用することで何らかの形で実現できることを理解しています。

4

2 に答える 2

36

ブラシ自体をコピーする方法はわかりませんが、あなたが言うように、ブラシのプロパティをコピーできます。

<SolidColorBrush x:Key="FolderColor" Color="{Binding Color, Source={StaticResource PanelBackgroundBrush}}"/>

上記は同じ効果があるはずです。

于 2010-10-25T17:26:59.623 に答える
6

あなたはこのようなことをすることができます:

<Color x:Key="colorCommon">Red</Color>
<SolidColorBrush x:Key="scb1" Color="{StaticResource colorCommon}" />
<SolidColorBrush x:Key="scb2" Color="{StaticResource colorCommon}" /> 

(Colorで通常のColorプロパティを指定できることに注意してください)。

ただし、複数のSolidColorBrushオブジェクトで同じ色を使用している場合は、将来の柔軟性がない限り、なぜこれを行うのか疑問に思うでしょう。それ以外の場合は、余分な作業と読みやすさの問題を自分で作成しているだけです。

于 2010-10-25T18:03:04.570 に答える