2010-06-20 7 views
0

응용 프로그램의 현재 프로세서 시간을 나타내는 숫자를 표시하는 C#의 작업 표시 줄 아이콘을 만들려고합니다. 간단하게 기본 작업 표시 줄 아이콘을 참조하여 아이콘의 적절한 크기를 알아낼 수 있지만 문제가 발생합니다. 다른 아이콘 크기는 텍스트의 다른 글꼴 크기로 잘 작동합니다. 나는 생성 될 아이콘의 크기가 가능한 한 읽기 쉽고 명확한 글꼴 크기를 선택하는 방법을 알아야합니다.아이콘의 크기에 따라 사용할 글꼴 크기를 파악하는 방법은 무엇입니까?

이 경우 글꼴 크기 18은 제작하는 아이콘의 비트 맵 해상도가 32x32이므로 (모니터의 해상도가 1680 x 1050이므로) 잘 작동합니다. 그러나 만들려는 아이콘의 해상도가 16x16 (또는 32x32 미만) 인 경우 글꼴 크기가 18이면 아이콘 자체가 너무 커집니다. 내가 할 수있는 메소드 호출이 있는가, 아니면 그 라인에 따라 윈도우에 말해서 표시 될 아이콘의 해상도에 따라 사용할 가장 좋은 폰트 크기를 알아내는 것인가? 이 글이 혼란 스럽다면 미안합니다. 나는 무엇인가를 밝혀 드리겠습니다.

using (var image = new Bitmap(Icon.Width, Icon.Height)) 
     using (var g = Graphics.FromImage(image)) 
     { 
      g.DrawString(cpuReading.ToString(), new Font("Times New Roman", 18), new SolidBrush(Color.LightGreen), new PointF()); 
      this.tskBarIcon.Icon = Icon.FromHandle(image.GetHicon()); 
     } 

답변

0

원하는대로 할 수있는 직접적인 방법이 없습니다.

하지만 할 수있는 일은 Graphics.MeasureString을 사용하여 렌더링 된 문자열의 크기를 측정하는 것입니다. 큰 글꼴 크기로 측정을 시작한 다음 아이콘 크기에 맞는 크기가 될 때까지 점차 작은 크기를 시도하십시오.

관련 문제