728x90
반응형
728x170
▶ MainWindow.xaml.cs
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace TestProject
{
/// <summary>
/// 메인 윈도우
/// </summary>
public partial class MainWindow : Window
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainWindow()
/// <summary>
/// 생성자
/// </summary>
public MainWindow()
{
InitializeComponent();
this.fontButton.Click += fontButton_Click;
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
//////////////////////////////////////////////////////////////////////////////// Event
#region 폰트 버튼 클릭시 처리하기 - fontButton_Click(sender, e)
/// <summary>
/// 폰트 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void fontButton_Click(object sender, RoutedEventArgs e)
{
System.Windows.Forms.FontDialog fontDialog = new System.Windows.Forms.FontDialog();
fontDialog.ShowColor = true;
if(fontDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
ApplyFont(this.textBlock, fontDialog.Font, fontDialog.Color);
}
}
#endregion
//////////////////////////////////////////////////////////////////////////////// Function
#region 폰트 적용하기 - ApplyFont(textBlock, font, fontColor)
/// <summary>
/// 폰트 적용하기
/// </summary>
/// <param name="textBlock">텍스트 블럭</param>
/// <param name="font">폰트</param>
/// <param name="fontColor">폰트 색상</param>
private void ApplyFont(TextBlock textBlock, System.Drawing.Font font, System.Drawing.Color fontColor)
{
textBlock.Foreground = new SolidColorBrush(Color.FromArgb(255, fontColor.R, fontColor.G, fontColor.B));
textBlock.FontFamily = new FontFamily(font.Name);
textBlock.FontSize = font.Size;
if(font.Strikeout)
{
textBlock.TextDecorations.Add
(
new TextDecoration
(
TextDecorationLocation.Strikethrough,
null,
0,
TextDecorationUnit.FontRecommended,
TextDecorationUnit.FontRecommended
)
);
}
if(font.Underline)
{
textBlock.TextDecorations.Add
(
new TextDecoration
(
TextDecorationLocation.Underline,
null,
0,
TextDecorationUnit.FontRecommended,
TextDecorationUnit.FontRecommended
)
);
}
if(font.Italic)
{
textBlock.FontStyle = FontStyles.Italic;
}
else
{
textBlock.FontStyle = FontStyles.Normal;
}
if(font.Bold)
{
textBlock.FontWeight = FontWeights.Bold;
}
else
{
textBlock.FontWeight = FontWeights.Normal;
}
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] RadioButton 클래스 : 열거형 바인딩하기 (0) | 2019.06.29 |
---|---|
[C#/WPF] 외곽선 텍스트 사용하기 (0) | 2019.06.29 |
[C#/WPF] 외곽선 텍스트 사용하기 (0) | 2019.06.29 |
[C#/WPF] DropShadowEffect 클래스 : 텍스트 그림자 효과 적용하기 (0) | 2019.06.29 |
[C#/WPF] FontHelper 클래스 사용하기 (0) | 2019.06.28 |
[C#/WPF] FontDialog 클래스 : WinForm 폰트 대화 상자 사용하기 (0) | 2019.06.28 |
[C#/WPF] 듀얼 모니터 보조 화면 창 열기 (0) | 2019.06.28 |
[C#/WPF] Window 클래스 : WindowStyle 속성을 사용해 윈도우 테두리 제거하기 (0) | 2019.06.25 |
[C#/WPF] 반투명 윈도우 사용하기 (0) | 2019.06.24 |
[C#/WPF] 가상 키보드 사용하기 (0) | 2019.06.23 |
[C#/WPF] BlurEffect 클래스 사용하기 (0) | 2019.06.22 |
댓글을 달아 주세요