以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  狐表GDI绘图.DrawString方法是否还有动态获得画刷的颜色的方法,敬请帮助?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=5984)

--  作者:程兴刚
--  发布时间:2010/2/22 15:53:00
--  狐表GDI绘图.DrawString方法是否还有动态获得画刷的颜色的方法,敬请帮助?
     春节期间,研究了狐表GDI+绘图功能,其功能强大,很是不错,在使用中遇到了一个困惑,也曾一度发帖请教,出CZY、yangming等总版主给出的判断颜色的方法外,再没有其他良好之对策。
     由于颜色名称众多,在每一个需要指定画刷颜色的地方逐个判断一次颜色,事实上不大可能,尤其是对自定义颜色,更千变万化!
下面是在GDI+中绘制文字的一个语句
g.DrawString(gjdm,fnt,Brushes.Red,45,62)

这里的红色粗体字部分:Brushes.Red直接为一个新的画刷颜色,其本身应该应该属于Brushes类型(非字符型),后面直接跟随颜色名称,暂时没有找到方法动态获得。

希望能够能够支持比如:
      g.DrawString(gjdm,fnt1,Brushes(颜色名称),45,62)

这里的颜色名称允许是一个自由组合的符合颜色名称的字符串,甚至可以支持其他颜色格式(ARGB等等),那将是再漂亮不过

总之,就是希望动态获得画刷颜色,请哪位高手给看看,也烦请贺老师给一个好的方法,谢谢!


画笔属于pen类型,支持多种颜色格式,可以是颜色名称、ARGB格式,我已经通过动态获取和转换获得,这是代码,仅供参考:

Dim pn1 As New Pen(Color.FromARGB(getConfigValue("窗口标注线颜色",e.Form.Controls("ColorLabel2").Value)),1) \'指定画笔颜色和画笔宽度
[此贴子已经被作者于2010-2-22 15:58:38编辑过]

--  作者:狐狸爸爸
--  发布时间:2010/2/22 16:01:00
--  
将下面的内容复制到全局代码:

Public Function GetBrushFromColorName(ByVal ColorName As String) As System.Drawing.Brush
    Dim t As Type = GetType(Color)
    Dim p As System.Reflection.PropertyInfo = t.GetProperty(ColorName)
     Dim c As Color = p.GetValue(Nothing, Nothing)
    Return New System.Drawing.SolidBrush(c)
End Function

以后就可以:

g.DrawString(gjdm,fnt1,GetBrushFromColorName(颜色名称),45,62)

--  作者:yangming
--  发布时间:2010/2/22 16:24:00
--  
以下是引用狐狸爸爸在2010-2-22 16:01:00的发言:
将下面的内容复制到全局代码:

Public Function GetBrushFromColorName(ByVal ColorName As String) As System.Drawing.Brush
    Dim t As Type = GetType(Color)
    Dim p As System.Reflection.PropertyInfo = t.GetProperty(ColorName)
     Dim c As Color = p.GetValue(Nothing, Nothing)
    Return New System.Drawing.SolidBrush(c)
End Function

以后就可以:

g.DrawString(gjdm,fnt1,GetBrushFromColorName(颜色名称),45,62)

好办法!不知道其它的枚举是否也可以如此?


--  作者:狐狸爸爸
--  发布时间:2010/2/22 16:26:00
--  
以下是引用yangming在2010-2-22 16:24:00的发言:

好办法!不知道其它的枚举是否也可以如此?


其实Color不是枚举,枚举实现这样的功能更简单一点。


--  作者:czy
--  发布时间:2010/2/22 16:29:00
--  
看不懂图片点击可在新窗口打开查看
--  作者:程兴刚
--  发布时间:2010/2/22 16:30:00
--  

贺老师,看来只有您老人家解决得这么干净彻底,我看都看不懂,先当新年第一份大礼收下,谢谢了!