-
WPF 글씨에 그림자 효과 (Shadow Text)C#/WPF 2017. 1. 13. 13:55
폰트에는 따로 그림자를 넣어주는 효과가 없습니다. 그림자는 Label과 같은 컨트롤에 Effect를 통해서 넣어주어야 합니다.
(해당 그림자 효과는 Lable, TextBox, TextBlock 등 여러 곳에 사용이 가능합니다. Label로 예를 들어 설명하겠습니다.)
DropShadowEffect 라는 클래스를 통해서 해주면 됩니다. (System.Windows.Media.Effects.DropShadowEffect)
이 클래스의 속성들을 통해 그림자를 설정해준 뒤 Label에 적용시켜 주시면 됩니다.
12System.Windows.Media.Effects.DropShadowEffect shadow = new System.Windows.Media.Effects.DropShadowEffect();lbl.Effect = shadow;cs DropShadowEffect의 대표적인 속성들을 소개해 드리고, 활용하는 법을 알려드리겠습니다.
BlurRadius : 그림자의 번지는 정도를 설정합니다. 클수록 더 넓지만 흐릿한 그림자가 됩니다.
Color : 그림자의 색을 설정합니다. System.Windows.Media.Color 형을 사용합니다.
Direction : 그림자의 방향을 설정합니다. 3시방향이 0도로 시작하여 반시계 방향으로 증가합니다. 0 ~ 360 사이의 값 설정
Opacity : 그림자의 불투명도를 설정합니다. 0 ~ 1 사이의 값 설정
ShadowDepth : 그림자의 거리를 설정합니다. 클수록 더 뒤쪽에 그림자가 설정됩니다.
생성자는 기본 생성자 밖에 없습니다. 기본 생성자로 생성시에 각 속성들은
BlurRadius : 5
Color : #FF000000
Direction : 315
Opacity : 1
ShadowDepth : 5
로 설정됩니다.
그림자를 없애는 법은
1. 보이지 않는 그림자를 만드셔서 적용시키셔도 되고,
1234System.Windows.Media.Effects.DropShadowEffect shadow = new System.Windows.Media.Effects.DropShadowEffect();shadow.BlurRadius = 0;shadow.ShadowDepth = 0;lblMain.Effect = shadow;cs 2. 새로운 Label을 만든 뒤 Label의 초기값 Effect를 사용하셔도 되며(추천),
1lbl.Effect = new Label().Effect;cs 3. 그림자를 적용시키지 않은 컨트롤의 Effect를 가져와도 됩니다.
1lbl.Effect = Effect;cs (우측의 Effect는 해당 코드가 있는 Window의 Effect를 가져오는 것입니다.)
예) Label에 있는 텍스트 아래쪽에 파란색 그림자를 만드는 예 입니다.
12345System.Windows.Media.Effects.DropShadowEffect shadow = new System.Windows.Media.Effects.DropShadowEffect();shadow.Color = Color.FromRgb(0, 0, 255);shadow.Direction = 270;lbl.Effect = shadow;cs (그림자가 잘 보이게 하기 위해 글자색을 바꿨습니다.)
참조.(msdn)
'C# > WPF' 카테고리의 다른 글
WPF 윤곽선 텍스트(Outlined Text) (0) 2017.01.23 WPF 메시지 박스 띄우기(경고창 띄우기) (0) 2017.01.16 C# WPF Font 폰트 클래스 사용(직렬화, Label에 적용) (0) 2016.12.29 WPF Brush 와 SolidColorBrush, Color (0) 2016.12.23 WPF 에서 toast 메시지 만들기 (0) 2016.12.05 댓글