2011-04-21 5 views
3

VS C# 2008 Express를 사용하고 있습니다.C# WinForms FontDialog을 일부 글꼴로 초기화 할 수 없습니까?

표준 FontDialog 컨트롤을 사용하여 사용자의 글꼴 선택을 저장 및 검색 할 수있는 기능을 추가하고 있습니다.

테스트 중에 특정 글꼴이 "글꼴"상자에 이름이 나타나지 않고 샘플이 비어있는 경우 대화 상자를 완전히 초기화하지 않는 것으로 나타났습니다.

"Arial Black", "Segoe UI Light", "Segoe UI Semibold"등 대화 상자의 "글꼴 스타일"목록에 이름의 일부가 나타나는 글꼴입니다 (흥미롭게도 " Arial Narrow "가 예상대로 작동합니다.

코드에서 대화 상자의 글꼴을 초기화하는지 또는 IDE의 위의 문제 글꼴 중 하나에 FontDialog 컨트롤의 속성을 설정하더라도 동일한 문제가 나타납니다.

그냥 버튼에 의해 시작 FontDialog 컨트롤을 추가, 간단한 양식을 작성하고,이 문제를 해결하기 위해 16

어떤 방법으로 자사의 글꼴 속성을 "굴림 블랙"과 크기를 설정하여 재생하기 쉽다?

추가 정보 : 이 문제는 Windows 7 64 비트 시스템에서 발생합니다. Vista 및 XP에서 Arial Black 및 Arial Narrow는 검정색 및 좁은 스타일의 Arial이 아닌 별도의 글꼴로 표시됩니다. 그래서 마이크로 소프트는 Win7에서 일반적인 글꼴 대화 상자와 다른 뭔가를하고있는 것 같습니다.

+0

여기에서 문제의 이미지를 볼 수 있습니다. [link] (http://i.imgur.com/y7cGf.png) –

+0

검색에서이 문제에 대한 언급은 거의 발견되지 않았지만 약간의 통찰력을 제공하는 해결책을 찾았습니다. 그러나 해결책은 없습니다. [link] (http://www.vbmonster.com/Uwe/Forum. aspx/vb/34616/Combining-fonts-in-same-font-family) –

+0

이 문제는 Delphi 응용 프로그램에서 재현되었으므로 분명히 Windows 7의 일반적인 글꼴 대화 문제입니다. Microsoft Connect에서 버그 보고서를 제출했습니다. 그것이 어디든지 간다면 여기로 돌아올 것입니다. –

답변

3

그 행동을 확인할 수 있습니다. 왜 이것이 올바른지에 대한 확실한 설명이 제공 될 때까지 기다려야합니다. 누구도 제공하지 않으면 Microsoft Connect을 통해 신고하십시오. + Ctrl 키를 System.Drawing 및 System.Windows.Forms에 대한 참조를 추가 할 수

void Main() 
{ 
    using (var dlg = new FontDialog()) 
    { 
     dlg.Font = new Font("Arial Black", 16); 
     dlg.Font.Dump("before"); 
     dlg.ShowDialog(); 
     dlg.Font.Dump("between"); 
     dlg.ShowDialog(); 
     dlg.Font.Dump("after"); 
    } 
} 

사용 F4 및 충돌 :

여기에 문제를 재현 LINQPad를 사용하고 다음 프로그램을 실행하는 방법 . 글꼴 및 FontDialog에는

그런 다음 그 관찰에 필요한 사용하여 절을 추가합니다 :

  1. 굴림 블랙이
  2. 표시되는 처음을 선택하지 않는 경우, 첫 번째 시간 동안, 굴림을 선택하는 경우 글꼴 스타일 선택 도구에서 검정색을 선택하고 확인을 클릭하면 글꼴을 선택하지 않고 대화 상자가 다시 나타납니다.
  3. 글꼴의 3 개의 덤프 (단, Arial, Black, 16 번 모두 선택)에서 유일한 차이점은 대화 상자 (15.75pt vs. 16pt) 다음으로 크기가 약간 떨어져 있다는 것입니다. 또한 OriginalFontName은 대화 상자 뒤에 null으로 남습니다. 그러나 글꼴 이름은 "Arial Black"과 같습니다.

나는 이것이 버그라고 생각하는 이유는 동일한 대화 상자가 두 번째로 튀어 오면 두 번째로 값을 선택하는 결과를 처음 보여줄 때 동일한 정보를 보여 주어야한다는 것입니다.

+0

확인해 주셔서 감사합니다, 라세. 나는 또한 글꼴 크기의 수수께끼 같은 0.25pt 차이를 알아 차리고있다. –

관련 문제