728x90
반응형
728x170
▶ MainWindow.xaml
<Window x:Class="TestProject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="800"
Height="600"
Title="TextBlock 클래스 : TextDecorations 속성 사용하기"
FontFamily="나눔고딕코딩"
FontSize="16">
<Window.Resources>
<Style TargetType="TextBlock">
<Setter Property="Margin" Value="20" />
<Setter Property="FontSize" Value="32" />
<Setter Property="Text" Value="The quick red fox" />
</Style>
</Window.Resources>
<Grid>
<StackPanel
HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Name="textBlock1" />
<TextBlock Name="textBlock2" />
<TextBlock Name="textBlock3" />
<TextBlock Name="textBlock4" />
<TextBlock Name="textBlock5" />
</StackPanel>
</Grid>
</Window>
728x90
▶ 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();
Loaded += Window_Loaded;
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
//////////////////////////////////////////////////////////////////////////////// Event
#region 윈도우 로드시 처리하기 - Window_Loaded(sender, e)
/// <summary>
/// 윈도우 로드시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void Window_Loaded(object sender, RoutedEventArgs e)
{
SetTextDecoration1(this.textBlock1);
SetTextDecoration2(this.textBlock2);
SetTextDecoration3(this.textBlock3);
SetTextDecoration4(this.textBlock4);
SetTextDecoration5(this.textBlock5);
}
#endregion
//////////////////////////////////////////////////////////////////////////////// Function
#region 텍스트 데코레이션 설정하기 1 - SetTextDecoration1(textBlock)
/// <summary>
/// 텍스트 데코레이션 설정하기 1
/// </summary>
/// <param name="textBlock">텍스트 블럭</param>
private void SetTextDecoration1(TextBlock textBlock)
{
TextDecoration decoration = new TextDecoration
(
TextDecorationLocation.Baseline,
new Pen(Brushes.Maroon, 1),
2.0,
TextDecorationUnit.Pixel,
TextDecorationUnit.Pixel
);
TextDecorationCollection collection = new TextDecorationCollection();
collection.Add(decoration);
textBlock.TextDecorations = collection;
}
#endregion
#region 텍스트 데코레이션 설정하기 2 - SetTextDecoration2(textBlock)
/// <summary>
/// 텍스트 데코레이션 설정하기 2
/// </summary>
/// <param name="textBlock">텍스트 블럭</param>
private void SetTextDecoration2(TextBlock textBlock)
{
TextDecoration decoration = new TextDecoration();
decoration.Pen = new Pen(Brushes.Red, 1);
decoration.PenThicknessUnit = TextDecorationUnit.FontRecommended;
TextDecorationCollection collection = new TextDecorationCollection();
collection.Add(decoration);
textBlock.TextDecorations = collection;
}
#endregion
#region 텍스트 데코레이션 설정하기 3 - SetTextDecoration3(textBlock)
/// <summary>
/// 텍스트 데코레이션 설정하기 3
/// </summary>
/// <param name="textBlock">텍스트 블럭</param>
private void SetTextDecoration3(TextBlock textBlock)
{
TextDecoration decoration = new TextDecoration();
decoration.Location = TextDecorationLocation.Underline;
decoration.Pen = new Pen(Brushes.Red, 1);
decoration.PenOffset = 2;
decoration.PenOffsetUnit = TextDecorationUnit.Pixel;
decoration.PenThicknessUnit = TextDecorationUnit.Pixel;
TextDecorationCollection collection = new TextDecorationCollection();
collection.Add(decoration);
textBlock.TextDecorations = collection;
}
#endregion
#region 텍스트 데코레이션 설정하기 4 - SetTextDecoration4(textBlock)
/// <summary>
/// 텍스트 데코레이션 설정하기 4
/// </summary>
/// <param name="textBlock">텍스트 블럭</param>
private void SetTextDecoration4(TextBlock textBlock)
{
Pen pen = new Pen();
pen.Thickness = 1.5;
pen.DashStyle = DashStyles.Dash;
pen.Brush = new LinearGradientBrush
(
Colors.Yellow,
Colors.Red,
new Point(0, 0.5),
new Point(1, 0.5)
);
pen.Brush.Opacity = 0.5;
TextDecoration decoration = new TextDecoration();
decoration.Pen = pen;
decoration.PenThicknessUnit = TextDecorationUnit.FontRecommended;
TextDecorationCollection collection = new TextDecorationCollection();
collection.Add(decoration);
textBlock.TextDecorations = collection;
}
#endregion
#region 텍스트 데코레이션 설정하기 5 - SetTextDecoration5(textBlock)
/// <summary>
/// 텍스트 데코레이션 설정하기 5
/// </summary>
/// <param name="textBlock">텍스트 블럭</param>
private void SetTextDecoration5(TextBlock textBlock)
{
textBlock.TextDecorations = TextDecorations.Strikethrough;
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] Paragraph 엘리먼트 : Typography 엘리먼트 첨부 속성 사용하기 (0) | 2020.08.28 |
---|---|
[C#/WPF] Paragraph 엘리먼트 : FontFamily 속성 사용하기 (0) | 2020.08.28 |
[C#/WPF] Paragraph 엘리먼트 : Background/Foreground 속성 사용하기 (0) | 2020.08.28 |
[C#/WPF] TextBlock 엘리먼트 : TextEffects 속성 사용하기 (0) | 2020.08.28 |
[C#/WPF] MenuItem 엘리먼트 : StaysOpenOnClick 속성을 사용해 클릭시 메뉴 오픈 상태 유지하기 (0) | 2020.08.28 |
[C#/WPF] TextBlock 엘리먼트 : TextDecorations 속성 사용하기 (0) | 2020.08.28 |
[C#/WPF] RichTextBox 클래스 : SelectionChanged 이벤트를 사용해 선택 영역 서식 설정하기 (0) | 2020.08.28 |
[C#/WPF] TextBox 클래스 : 입력한 텍스트가 없는 경우 배경 이미지 보여주기 (0) | 2020.08.28 |
[C#/WPF] ControlTemplate 엘리먼트 : Button 엘리먼트 정의하기 (0) | 2020.08.28 |
[C#/WPF] LinearGradientBrush 엘리먼트 : 글래스 효과 브러시 만들기 (0) | 2020.08.28 |
댓글을 달아 주세요