2017-12-23 10 views
-3

知られている色名を定義することです。WPFは "Red"(この場合はCustomRedと呼ばれ、アプリケーション全体で機能します)と照合します。私はWPF

// Custom known name, this is what i would like to do. 
<Border Background="CustomRed"></Border> 

// System color name. 
<Border Background="Red"></Border> 

// Static hex value. 
<Border Background="#FF0000"></Border> 

// Bind to data context. 
<Border Background="{Binding CustomRed}"></Border> 
+3

SolidColorBrudhesをリソースに定義してStaticResource/DynamicResourceで適用しないでください – sTrenat

答えて

1

リソースとして定義できます。その後

<SolidColorBrush x:Key="CustomRed">#FF0000</SolidColorBrush> 

をこのようにそれを使用します:リソースディクショナリでは、このようにそれを定義

<Border Background="{StaticRecource CustomRed}"></Border> 
-1

@ MahdiAtaollahiの回答に加えて、あなたはまた、代わりに進値のARGB値を使用することができます。

<Window.Resources> 
    <SolidColorBrush x:Key="LikeGreen"> 
     <SolidColorBrush.Color> 
      <Color R="100" G="200" B="30" A="100"/> 
     </SolidColorBrush.Color> 
    </SolidColorBrush> 
</Window.Resources> 

そして、それを使用します。

<Button Background="{StaticResource LikeGreen}"/> 
+0

**ダウン投票者、説明、お願いします!** – JohnyL

0

XAMLプロセッサは、文字列値をプロパティの実際の型に変換するのにTypeConvertersを使用します。これは、文字列 'Red'がSolidColorBrushに変換される方法です。の場合はBrushes.Redバックグラウンドプロパティ。独自のTypeConverterを定義することはできますが、タイプにTypeConverterAttributeを追加する必要があるため、残念ながら自分のタイプにしか接続できません。カスタムTypeConverterを 'Brush'や 'Color'のようなフレームワーククラスに関連付けることはできません。述べStaticResourceまたは@MahdiAtaollahiなどDynamicResourceマークアップ拡張を使用して

あなたが得ることができる最も近いです。

関連する問題