본문 바로가기
Programming/WPF

WPF Style #2

by 곰네Zip 2022. 11. 17.

전에 작성했던 WPF Style #1에 이어서 작성. 해당 글은 아래 링크 참조

https://gomnezip.tistory.com/446

 

WPF style. #1

WPF에서 많은 컨트롤들을 사용할 수 있다. 근데, 그 컨트롤들의 배경색이나 끝마감, 텍스트의 폰트 크기등을 미리 정의할 수 있다. (CSS에 대응된다고 생각하면 쉽다.) 스타일의 장점은 1. 화면에

gomnezip.tistory.com

WPF에서 Style을 ResourceDictionary에 작성할 수 있다고 했었다.

그 내용 중, 몇가지 추가.. 

먼저, 컨트롤들의 스타일에서 중요한 것 중 하나는, Color다. (당연한 이야기를..)

Color는 Color라고 이름붙인 노드가 아니라, SolidColorBrush를 사용한다.

<SolidColorBrush x:Key="myBaseBackground" Color="#202020" />
<SolidColorBrush x:Key="myBlack" Color="Black" />
<Color x:Key="myBlackCr">#010101</Color>
<SolidColorBrush x:Key="myBlack2" Color="{StaticResource ResourceKey=myBlackCr" />

뭐.. 위와 같이 작성이 가능하다. (myBlack처럼도 가능은 한데 굳이..?)

Color값을 미리 정의한 후, 그 값을 Brush의 Color로 사용하는것도 가능하다.

예를들어,

Text와 배경 Color가 같다.

 위와 같이 같은 색상을 여러곳에서 사용해야 한다면.. 저렇게 Color를 붙여서 쓰는것은 좋은 방법이 될듯.

Color값은 #RRGGBB << 이 값을 넣어주면 된다.

 그리고 Control에서 사용하려면 아래와 같이

<SolidColorBrush x:Key="myPen" Color="#00FF00" />
<Style TargetType="{x:Type Button}" x:Key="myBtn">
	<Setter Property="Background" Value="{StaticResource ResourceKey=myPen}" />
</Style>

<Button Style="{StaticResource ResourceKey=myBtn}" Content="B1" />
<Button Background="{StaticResource ResourceKey=myPen}" Content="B2" />

이렇게 하면 된다.

다만 중요한건.. SolidColorBrush를 사용하려는 Style이 있다면, 해당 Style보다 먼저 SolidColorBrush를 선언해줄 것. 아니면 찾지 못한다고 오류남.

반응형

댓글