테두리가 확장 된 WinForm
에 글라스 영역에 텍스트를 배치하면 올바르게 표시되지 않습니다.유리 모양의 텍스트가 올바르게 표시되지 않습니다.
이 텍스트가
a busy cat http://img833.imageshack.us/img833/4732/95454282.png Status
같은 모습입니다! [양식] [1]
어떻게 정상적으로 표시 할 텍스트를 해결할 수 있습니까?
테두리가 확장 된 WinForm
에 글라스 영역에 텍스트를 배치하면 올바르게 표시되지 않습니다.유리 모양의 텍스트가 올바르게 표시되지 않습니다.
이 텍스트가
a busy cat http://img833.imageshack.us/img833/4732/95454282.png Status
같은 모습입니다! [양식] [1]
어떻게 정상적으로 표시 할 텍스트를 해결할 수 있습니까?
Winforms의 텍스트는 0의 알파로 렌더링됩니다. 그러면 유리에 그릴 때 투명이됩니다. 따라서 선택한 ForeColor가 아닌 배경색이 보입니다.
글씨 위에 텍스트를 그리는 일은 번거롭기 때문에 텍스트의 배경이 잘 정의되어 있지 않기 때문에 쉽게 앤티 앨리어싱을 적용 할 수 없습니다. 스크린 샷은 Windows에서 문제를 해결하는 방법을 보여줍니다. 윈도우 캡션의 텍스트는 유백색 배경을 가지고있어서 앤티 앨리어스가 글자를 배경에 올바르게 혼합합니다.
당신이해야 할 일은 다음과 같습니다. DTT_GLOWSIZE 플래그 옵션을 사용하여 pinvoke 인 DrawThemeTextEx()와 같은 텍스트를 그릴 수 있습니다. 필요한 선언은 pinvoke.net을 방문하거나 this project을 사용하십시오. 그리고 이전 윈도우 버전에서도이 윈도우가 여전히보기 흉하게 보이도록 폴백을 제공하는 것을 잊지 마십시오. 더 새로운 버전 인 Windows 8에서는 유리가 더 이상 적합하지 않습니다.
텍스트를 그리기는 어렵지 만 양식의 모든 텍스트를 그리기는 어렵지만 어쨌든 고맙습니다. 그리고 네, 각 Windows 버전마다 다른 방법이 있습니다. –
텍스트가 0의 알파로 렌더링되는 이유는 무엇입니까? 아니면 알파를 사용하지 않고 일부만 렌더링하는 레거시 렌더링입니까? 기본값은 0입니까? – Triynko
예, GDI는 24 비트입니다. –