TJVictor的专栏

只有不断进步才会越来越强

郭勇成ID:tjvictor
68341次访问,排名1444好友2人,关注者8
一直专注于.NET的程序开发,虽然水平不怎么样。哈哈。
tjvictor的文章
原创 37 篇
翻译 0 篇
转载 17 篇
评论 43 篇
TJVictor(天天进步)的公告
欢迎光临我的博客,请大家多多指教,发表评论。
最近评论
renguixue:楼主麻烦能给发一份DEMO么
我是初学者,怎么也搞不出来,谢谢
xue00000ren@163.com
agjyfm:wow gold
gaozhiling1999:不错 ,学习中
xxlxjq:楼主,您好!
请问在Zedgraph 的 bar中,如何在每个baritem的上方显示 Y轴的值,谢谢了!
flyingstarwb:恩,不错~
文章分类
收藏
相册
tjvictor
学习.NET知识常用网站
.NET的相关插件
ASP.NET FAQ
C# 开源资源大全
CodeProject
Windows Forms FAQ
资源网站大全
代码秀网站
实用建站代码大全
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 利用TextureBrush时的图像偏移问题。收藏

新一篇: 窗体间利用属性(property)来传递值时应注意的问题。 | 

最近使用GDI+中的TextureBrush ,但是在FillRectangle時,圖像總是出現偏移問題,例如下圖:

原始圖片應該為:

下面是我的源代碼,我將一步一步的分析出現這個問題的原因及解決方法。

    Image logo = Image.FromFile( " Your Picture Path" );
   TextureBrush br = new TextureBrush( logo );
   Graphics g = this.CreateGraphics();
   g.FillRectangle( br , 22 , 29 , 20 , 20 );

原因就在於g.FillRectangle( br , 22 , 29 , 20 , 20 ); 中的22 ,29 。原來我認為22 ,29 隻是來確定你要顯示的圖片在form中的相對位置( x ,y ),但是用TextureBrush時(22 ,29) ,不僅是確定位置的,而且還決定了圖片的偏移大小 ,你如果把其換成其它的數,那麼圖片的偏移還會變的。把g.FillRectangle( br , 22 , 29 , 20 , 20 ); 改成g.FillRectangle( br , 0 , 0 , 20 , 20 ); ,圖像顯示正常,但是其位置確是(0 , 0),所以這也驗証了我上述的猜想是正確的。

解決方法:

Image logo = Image.FromFile( "D:\\EPON_EMS\\image\\green.png" );
   TextureBrush br = new TextureBrush( logo );
   br.TranslateTransform( 22 , 29 );
   Graphics g = LIU1.CreateGraphics();
   g.FillRectangle( br , 22 , 29 , 20 , 20 );

加上一句br.TranslateTransform( 22 , 29 );就OK了,TranslateTransform是把原始圖像的起始位置進行偏移,這樣我們就相當於先將它偏移,然後在FillRectangle中又將它偏移了過來,這樣簡單的達到了我們的目的。

发表于 @ 2006年05月28日 11:11:00|评论(loading...)|编辑

新一篇: 窗体间利用属性(property)来传递值时应注意的问题。 | 

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © TJVictor(天天进步)