이전 StaticResources 포스팅에서 폰트 컬러를 바꿔 봤는데요.
![[c# wpf] Style 태그 사용 방법 [c# wpf] Style 태그 사용 방법](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
![[c# wpf] Style 태그 사용 방법 [c# wpf] Style 태그 사용 방법](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
형태는 비슷하지만 이번에는 <Style>태그를 이용한 방법에 대해 알아보겠습니다.
기존 방식과 다르게 다양한 속성을 손쉽게 사용할 수 있다는 점에서 아주 강력하니 꼭 숙지하시면 좋겠습니다.
이번 포스팅에서는 아래와 같이 버튼에 빨간색 배경을 칠하는 것이 목표입니다.
![[c# wpf] Style 태그 사용 방법 [c# wpf] Style 태그 사용 방법](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
1. 기본 사용방법
1) .Resources안에 Style 태그 추가
![[c# wpf] Style 태그 사용 방법 - 1. 기본 사용방법 [c# wpf] Style 태그 사용 방법 - 1. 기본 사용방법](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
2) 어느 곳에 스타일을 적용할지 TargetType 속성을 이용하여 정하기
우리는 Button 부분에 스타일을 적용하고 싶으니까 Button 이라고 적어줍니다.
![[c# wpf] Style 태그 사용 방법 - 1. 기본 사용방법 [c# wpf] Style 태그 사용 방법 - 1. 기본 사용방법](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
3) 어떤 속성을 변경할지 정하기
우리는 Background 컬러를 변경하고 싶습니다.
![[c# wpf] Style 태그 사용 방법 - 1. 기본 사용방법 [c# wpf] Style 태그 사용 방법 - 1. 기본 사용방법](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
<Setter> 태그를 작성하고 Property에 Background, Value에 red값을 입력합니다.
그리고 실행하면 정상적으로 실행되는것을 알 수 있습니다.
이외에 추가적인 속성을 추가하고 싶다면 <Setter> 태그를 추가 하면됩니다.
만약 폰트사이즈를 조금 크게 해보고싶다면, 아래와 같이 적을 수 있겠죠.
![[c# wpf] Style 태그 사용 방법 - 1. 기본 사용방법 [c# wpf] Style 태그 사용 방법 - 1. 기본 사용방법](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
output:
![[c# wpf] Style 태그 사용 방법 - 1. 기본 사용방법 [c# wpf] Style 태그 사용 방법 - 1. 기본 사용방법](https://blog.kakaocdn.net/dna/bDelsI/btrDzlFq7oC/AAAAAAAAAAAAAAAAAAAAADZaKYTRkkDRi7agUMVK8ctMh8KtBFTQQ4T04b2V59DK/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1756652399&allow_ip=&allow_referer=&signature=rG13majZJ7c4m3CjjiIqOLQfw%2F0%3D)
2. Style에서 x:Key사용
![[c# wpf] Style 태그 사용 방법 - 2. Style에서 x:Key사용 [c# wpf] Style 태그 사용 방법 - 2. Style에서 x:Key사용](https://blog.kakaocdn.net/dna/lWEvH/btrDBu9FBWQ/AAAAAAAAAAAAAAAAAAAAAKJQWuJBFZFZ8X9E0LUSNQcOX5xFR9M8ghzWa1QiVMQR/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1756652399&allow_ip=&allow_referer=&signature=ZgIC1qAMx%2BOm8Cw%2BMo8ZAm6njM8%3D)
위와 같이 두개의 버튼이 있다면, 앞서 정의한 TargetType에 Button이라고 명시되어 있기 때문에 둘다 같은 스타일이 적용됩니다.
만약 두번째 버튼만 빨간색이 적용되게 하고 싶다면 어떻게 할까요?
그때 사용하는게 x:Key입니다.
<Style>태그 에 x:Key명을 정의해줍니다.
우리 코드에서는 "스타일링"을 이름으로 정해보았습니다.
![[c# wpf] Style 태그 사용 방법 - 2. Style에서 x:Key사용 [c# wpf] Style 태그 사용 방법 - 2. Style에서 x:Key사용](https://blog.kakaocdn.net/dna/b1TuDv/btrDvRZAPFZ/AAAAAAAAAAAAAAAAAAAAAGAGhiREttgvnsM-l-irWgm3UDcp3KRjmbrMxwacxShk/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1756652399&allow_ip=&allow_referer=&signature=zhD8AZhWwgBjIYvegLo%2FfHlx%2Feg%3D)
그리고 적용하고 싶은 버튼 엘리먼트에 가서 "{StaticResource Key명}" 을 작성해주시면 완성이 됩니다.
+보너스
앞서 TargetType에 적었던 이 부분은
![[c# wpf] Style 태그 사용 방법 - 2. Style에서 x:Key사용 [c# wpf] Style 태그 사용 방법 - 2. Style에서 x:Key사용](https://blog.kakaocdn.net/dna/k09zZ/btrDEQSbUvI/AAAAAAAAAAAAAAAAAAAAAJRtgJZ4FCEcHCvcYeSTm-r7Hz-1zB3TRGDCiCS-mCuO/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1756652399&allow_ip=&allow_referer=&signature=JhybuoXCk2DTDxSNbgwmEPV4zVo%3D)
아래와 같이 {x:Type 엘리먼트명} 형태로 적어줄 수도 있습니다.
![[c# wpf] Style 태그 사용 방법 - 2. Style에서 x:Key사용 [c# wpf] Style 태그 사용 방법 - 2. Style에서 x:Key사용](https://blog.kakaocdn.net/dna/kIMVb/btrDEp1IG0t/AAAAAAAAAAAAAAAAAAAAAJ1DJNboIQ9cz45IagdNCfoh1vXMST__QPjYKOjFIXI2/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1756652399&allow_ip=&allow_referer=&signature=a30y0ZLXxRbQ3a%2FAryxD7rNWyes%3D)
혹시 코드를 보시다 이런 형태가 나와도 당황하시지 말기 바랍니다 :)
이 글과 읽으면 좋은글
'c# > wpf' 카테고리의 다른 글
[c# wpf] DataContext란? 왜 쓰는 것일까? (0) | 2022.05.31 |
---|---|
[c# wpf] Style 상속 방법(with BasedOn) (0) | 2022.05.31 |
[c# wpf] 데이터바인딩에서 mode 사용법 (0) | 2022.05.30 |
[c# wpf] StaticResource란? (DynamicResource 비교) (1) | 2022.05.30 |
[c# wpf] 데이터 바인딩 기초 개념/ 예제 완벽 정리 (3) | 2022.05.27 |
댓글