2009-07-27 3 views
2

문자열을 버퍼에 그릴 때 결과 출력은 예상대로 앤티 앨리어싱되지 않습니다. 그래픽이 PaintEventArgs에 전달 된 객체에 난 그냥 문자열을 그릴 경우, 다른 한편으로Compact Framework에서 이중 버퍼링을 사용하는 ClearType을 사용하는 방법?

protected override void OnPaint(PaintEventArgs e) 
{ 
    Bitmap buffer = new Bitmap(Width, Height, PixelFormat.Format32bppRgb); 
    using(Graphics g = Graphics.FromImage(buffer)) 
    { 
    g.Clear(Color.White); 
    g.DrawString("Hello, World", Font, new SolidBrush(Color.Black), 5, 5); 
    } 
    e.Graphics.DrawImage(buffer, 0, 0); 
} 

:이 코드는 표준 스마트 장치 프로젝트에서 Form1.cs에 넣고 ... 문제를 보여줍니다 , 그것은 내가 기대했던 것처럼 ClearType에서 렌더링됩니다.

저는 그래픽 버퍼를 글꼴 다듬기를 사용하는 방식으로 만들어야 만한다는 것을 알았지 만 그렇게 할 방법이 없습니다.

g.SmoothingMode = SmoothingMode.AntiAlias; 

답변

3

간단한 문제였습니다. PixelFormat.Format32bppRgb을 제거하면 정상적으로 작동합니다. 당신의 버퍼가 같은 픽셀 형식을 가지고 있는지 확인해야 할 것 같습니다 ...

0

은 그래픽의 SmoothingMode 속성은 객체 설정 표준).

+1

나는 이것이 CF에서 사용 가능한지 의심 스럽습니다. – leppie

+0

당신 말이 맞아요. – MusiGenesis

0

(이에 대한 몇 가지 래퍼가 존재) gdiplus.dll을을 사용해야합니다,하지만 윈도우 모바일 6 프로페셔널 (안에서만 볼 수 있습니다 :