2017-12-23 7 views
-3

내가 뭘하고 싶은지는 WPF가 "빨간색"(이 경우 CustomRed)과 관련하여 응용 프로그램 전체에서 작동하는 알려진 색상 이름 집합을 정의하는 것입니다.사용자 정의 알려진 색상 이름 i 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의 대답에 추가, 당신은 대신 16 진수 값의 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 으로 변환되는 방법입니다. 에 대한 배경 속성. 자신 만의 TypeConverter를 정의 할 수는 있지만 유형에 TypeConverterAttribute을 추가해야하므로 불행히도 자신의 유형에만 연결할 수 있습니다. 사용자 정의 TypeConverter를 'Brush'또는 'Color'와 같은 프레임 워크 클래스와 연결할 수 없습니다. 언급 된 정적 리소스 또는 @MahdiAtaollahi 같은 DynamicResource 마크 업 확장을 사용

당신이 얻을 수있는 가장 가까운 것입니다.