[WPF] 문자열(string)의 가로 세로 길이 계산Frontend/WPF2023. 4. 18. 22:15
Table of Contents
반응형
WPF에서 글꼴 크기(FontSize)와 폰트(FontFamily)를 통해 문자열의 크기를 계산하는 방법에 대해 알아보겠습니다.
FormattedText
를 사용하여 텍스트의 서식을 지정한 후 크기를 계산할 수 있습니다.
소스코드
TextBlock
컨트롤을 사용할 경우 아래와 같이 작성하여 문자열의 크기를 구합니다.
/// <summary>
/// 글자 가로 세로 길이 계산
/// </summary>
/// <param name="textBlock"></param>
/// <returns></returns>
private Size MeasureString(TextBlock textBlock)
{
FormattedText formattedText = new FormattedText
(
textBlock.Text,
CultureInfo.CurrentUICulture,
FlowDirection.LeftToRight,
new Typeface
(
textBlock.FontFamily,
textBlock.FontStyle,
textBlock.FontWeight,
textBlock.FontStretch
),
textBlock.FontSize,
textBlock.Foreground,
VisualTreeHelper.GetDpi(textBlock).PixelsPerDip
);
return new Size(formattedText.Width, formattedText.Height);
}
TextBlock
컨트롤을 사용하지 않고 string 문자열과 글꼴 크기, 폰트를 입력하여 길이를 구할 수 있습니다.
/// <summary>
/// 글자 가로 세로 길이 계산
/// </summary>
/// <param name="text"></param>
/// <param name="fontSize"></param>
/// <param name="fontFamily"></param>
/// <returns></returns>
private Size MeasureString(string text, int fontSize, FontFamily fontFamily)
{
FormattedText formattedText = new FormattedText
(
text,
CultureInfo.CurrentUICulture,
FlowDirection.LeftToRight,
new Typeface
(
fontFamily,
FontStyles.Normal,
FontWeights.Bold,
FontStretches.Normal
),
fontSize,
Brushes.Black,
VisualTreeHelper.GetDpi(this).PixelsPerDip
);
return new Size(formattedText.Width, formattedText.Height);
}
사용 방법
TextBlock
컨트롤을 사용할 경우 사용 방법입니다.
TextBlock textBlock = new TextBlock
{
Text = "test",
FontFamily = new FontFamily("Arial"),
FontSize = 16,
Foreground = Brushes.Red
};
Size textSize = MeasureString(textBlock);
Console.Write("Width => " + textSize.Width);
Console.Write("Height => " + textSize.Height);
TextBlock
컨트롤을 사용하지 않을 경우 사용 방법입니다.
string text = "hello eden";
int fontSize = 32;
FontFamily fontFamily = new FontFamily("Arial");
Size textSize = MeasureString(text, fontSize, fontFamily);
Console.Write("Width => " + textSize.Width);
Console.Write("Height => " + textSize.Height);
참고
반응형
'Frontend > WPF' 카테고리의 다른 글
WPF(Windows Presentation Foundation) 이해하기 (0) | 2024.06.20 |
---|---|
[WPF] KeyBinding 사용하여 단축키 설정하기 (1) | 2024.06.18 |
[WPF] Grid를 Bitmap 이미지로 변환 후 저장하기 (0) | 2023.04.08 |
WPF에서 Windows Forms(WinForm) Control 사용하기 (0) | 2023.02.23 |
[WPF] ffmpeg을 활용한 동영상 만들기 (0) | 2022.10.03 |
@고지니어스 :: 규니의 개발 블로그
IT 기술과 개발 내용을 포스팅하는 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!