문제

일부 레거시 코드에서 제공하는 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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top