2013-05-27 9 views

답변

1

Winforms의 텍스트는 0의 알파로 렌더링됩니다. 그러면 유리에 그릴 때 투명이됩니다. 따라서 선택한 ForeColor가 아닌 배경색이 보입니다.

글씨 위에 텍스트를 그리는 일은 번거롭기 때문에 텍스트의 배경이 잘 정의되어 있지 않기 때문에 쉽게 앤티 앨리어싱을 적용 할 수 없습니다. 스크린 샷은 Windows에서 문제를 해결하는 방법을 보여줍니다. 윈도우 캡션의 텍스트는 유백색 배경을 가지고있어서 앤티 앨리어스가 글자를 배경에 올바르게 혼합합니다.

당신이해야 할 일은 다음과 같습니다. DTT_GLOWSIZE 플래그 옵션을 사용하여 pinvoke 인 DrawThemeTextEx()와 같은 텍스트를 그릴 수 있습니다. 필요한 선언은 pinvoke.net을 방문하거나 this project을 사용하십시오. 그리고 이전 윈도우 버전에서도이 윈도우가 여전히보기 흉하게 보이도록 폴백을 제공하는 것을 잊지 마십시오. 더 새로운 버전 인 Windows 8에서는 유리가 더 이상 적합하지 않습니다.

+0

텍스트를 그리기는 어렵지 만 양식의 모든 텍스트를 그리기는 어렵지만 어쨌든 고맙습니다. 그리고 네, 각 Windows 버전마다 다른 방법이 있습니다. –

+0

텍스트가 0의 알파로 렌더링되는 이유는 무엇입니까? 아니면 알파를 사용하지 않고 일부만 렌더링하는 레거시 렌더링입니까? 기본값은 0입니까? – Triynko

+0

예, GDI는 24 비트입니다. –