WPF 레이블이있는 System.Drawing.Font 사용
문제
일부 레거시 코드에서 제공하는 System.Drawing.Font 객체 사용의 모양을 변경하려는 WPF 레이블 컨트롤이 있습니다. 나는 대부분의 속성을 설정할 수 있었지만 파업과 밑줄로 어려움을 겪고 있습니다.
지금까지 나는 다음과 같습니다.
System.Drawing.Font font = FontFromLegacyCode();
System.Windows.Controls.Label label = new System.Windows.Controls.Label();
label.FontFamily = new System.Windows.Media.FontFamily( font.Name );
label.FontWeight = font.Bold ? System.Windows.FontWeights.Bold : System.Windows.FontWeights.Regular;
label.FontStyle = font.Italic ? System.Windows.FontStyles.Italic : System.Windows.FontStyles.Normal;
label.FontSize = font.Size;
글꼴 스트라이크 아웃 또는 밑줄 속성을 어떻게 설정합니까? 더 잘 사용할 수있는 제어가 있습니까?
해결책
텍스트 블록 컨트롤로 변경합니다. TextBlock 컨트롤에는 사용할 수있는 TextDecorations 속성이 있습니다.
<TextBlock Name="textBlock" TextDecorations="Underline, Strikethrough" />
또는 당신이 정말로 좋아한다면 라벨 내부에 텍스트 블록을 붙일 수 있습니다 (텍스트 블록 자체를 사용하지만).
<Label Name="label">
<TextBlock Name="textBlock" TextDecorations="Underline, Strikethrough" />
</Label>
살펴보십시오 TextDecorations 수업.
텍스트 블록은 대부분의 상황에서 레이블보다 더 적합하다는 것을 알았습니다. 여기에 있습니다 블로그 게시물 차이점에 대해. 주요 차이점은 레이블이 컨트롤이고 텍스트 블록은 단지 프레임 워크 라이널션이라는 것입니다. 또한 레이블은 액세스 키를 지원합니다.
다른 팁
이미 가지고있는 코드를 살펴보면 문제가있을 수 있습니다. MSDN에서 Windows 양식 및 WPF 속성 매핑 그들은 의견을 제시합니다.
WPF의 글꼴 크기는 1/6 인치 1 인치로, 창으로는 17 인치의 1 인치로 표현됩니다. 해당 변환은 다음과 같습니다.
Windows 형태 글꼴 크기 = WPF 글꼴 크기 * 72.0 / 96.0.
제휴하지 않습니다 StackOverflow