-
WPF FontDialog 사용하기C#/WPF 2016. 4. 19. 19:48
이번에 폰트를 관련하여 찾아보다 보니, WPF에서는 FontDialog가 없다고 합니다. 그래서 외국 개발자분께서 따로 만들어 주신게 있고(여기), 아니면 WinForm의 FontDialog를 사용해야 합니다.
WPF에서 FontDialog를 사용하려면 우선 참조가 필요합니다
※참조 추가 -> 어셈블리 -> System.Drawing , System.Windows.Forms
이 두가지가 필요합니다.
System.Windows.Forms와 WPF에서 겹치는 것들은 따로 표시를 해주시기 바랍니다.
먼저 FontDialog로 font를 받아오는 것입니다.
System.Drawing.Font memFont;
System.Drawing.Color memColor;
123456789101112private void btnFont_Click(object sender, RoutedEventArgs e){System.Windows.Forms.FontDialog font = new System.Windows.Forms.FontDialog();font.ShowColor = true;if (font.ShowDialog() == System.Windows.Forms.DialogResult.OK){memFont = font.Font;memColor = font.Color;}}cs 그리고 해당 폰트를 WPF의 TextBox에 적용시키는 것입니다.
1234567891011121314151617181920212223242526272829303132333435363738private void ApplyFont(TextBox box){// 색 적용box.Foreground = new SolidColorBrush(Color.FromArgb(255, memColor.R, memColor.G, memColor.B));// 폰트 적용box.FontFamily = new FontFamily(memFont.Name);// 글자 크기 적용box.FontSize = memFont.Size;// 취소선 적용if (memFont.Strikeout){box.TextDecorations.Add(new TextDecoration(TextDecorationLocation.Strikethrough,null, 0, TextDecorationUnit.FontRecommended, TextDecorationUnit.FontRecommended));}// 밑줄 적용if (memFont.Underline){box.TextDecorations.Add(new TextDecoration(TextDecorationLocation.Underline,null, 0, TextDecorationUnit.FontRecommended, TextDecorationUnit.FontRecommended));}// 이탤릭체 적용if (memFont.Italic)box.FontStyle = FontStyles.Italic;elsebox.FontStyle = FontStyles.Normal;// 볼드체 적용if (memFont.Bold)box.FontWeight = FontWeights.Bold;elsebox.FontWeight = FontWeights.Normal;}cs TextBox대신 TextBlock에도 적용이 가능하며,
Label에는 TextDecorations가 없기 때문에 취소선과 밑줄의 적용이 불가한 것 같습니다.
'C# > WPF' 카테고리의 다른 글
WPF Uri 상대경로 (2) 2016.11.08 WPF 마우스 휠 이벤트 (0) 2016.05.16 WPF 음악파일 재생하기 (0) 2016.04.16 TextBox 숫자만 입력 가능하게 하기 (0) 2016.04.14 WPF에서 듀얼 모니터 전체화면 (0) 2016.04.10 댓글