2011-02-23 47 views
1

什麼是使用.NET和GDI +反轉文本的最佳方法。通過反轉,我的意思是繪製不同的背景/前景色。術語「最好」是主觀的,但是我將它定義爲速度,代碼行,最簡單的(即只有一個函數調用我可以做?)。.NET GDI +反轉文本

C#或VB.NET很好。

+0

反轉如何?鏡子?倒彩色繪畫? – 2011-02-23 18:40:44

+0

最好?以什麼方式?結果質量?速度?最小的資源使用情況?還有別的嗎? – Oded 2011-02-23 18:41:23

+0

'反轉'文本是什麼意思:你的意思是繪製不同的前景+背景顏色?你是否控制/編寫使用GDI繪製文本的代碼? – ChrisW 2011-02-23 18:41:49

回答

2

您可以用FillRectangleBrushes.Black,然後用Brushes.WhiteDrawString
根據你的情況,你可以通過調用MeasureString來獲得矩形的大小。

+0

在速度,代碼行和易於實現方面,這與其他方法相比如何? – TextInverter 2011-02-23 18:48:06

+1

@TextInverter:沒有其他方法。這是如何在黑色背景上繪製白色文本。如果您已經有黑色背景,則可以跳過第一步。 – SLaks 2011-02-23 18:49:06

+0

我可以使用GraphicsPath嗎?如果是這樣,它提供了什麼優勢? – TextInverter 2011-02-23 18:51:05

0

我希望你問的是關於鏡像文本。只需在窗體上使用此代碼onPaint方法

 Graphics g = e.Graphics; 
     g.DrawString("String on form", Font, Brushes.Black, 0, 0); 

     // here Im mirror graphics 
     g.MultiplyTransform(new System.Drawing.Drawing2D.Matrix(1, 0, 0, -1, 0, 40)); 

     // Drawing mirror text 
     g.DrawString("String on form", Font, Brushes.Black, 0, 0); 

     // returning graphics to normal state 
     g.ResetTransform();