首页 新闻 会员 周边 捐助

求解!C#重画窗体TextureBursh纹理问题求解!

0
悬赏园豆:50 [已关闭问题] 关闭于 2011-06-14 18:53

我在微软中国社区看到了一篇文章:《使用Visual C#制作可伸缩个性化窗体》
按照教学步骤基本上可以实现一个自定义窗体,可是有一个问题我不能解决,不理解,
来此请各路编程高手指点迷津,谢谢!
1.在手动重画窗体标题栏时,我用了如下代码画了标题栏左角:

private void DrawTop_Left(Graphics e)
{
Brush brush
= new TextureBrush(topRight, new Rectangle(0, 0, topRight.Width, topRight.Height));
e.FillRectangle(brush,
0, 0, topRight.Width, topRight.Height);
}


画出了如下窗口:(图1)


2.我用同一张图片来手动重画窗体标题栏的右角,代码如下:

private void DrawTop_Right(Graphics e)
{
Brush brush
= new TextureBrush(topRight, new Rectangle(0, 0
, topRight.Width, topRight.Height));
e.FillRectangle(brush,
this.Width-topRight.Width,0
, topRight.Width,topRight.Height);
}

画出了如下窗口:(图2)

我用来做为纹理的源图片是:

问题就在这里,为什么上面(图2)会变的那么乱呢?是什么原因引起的呢?我要如何解决这个问题?
(这张图片的目的是放在窗体的右上角,要用来放置系统按钮的,比如关闭按钮,最大化按钮等)

酸奶物语的主页 酸奶物语 | 初学一级 | 园豆:189
提问于:2011-06-12 13:42
< >
分享
所有回答(2)
0

呵呵,在这又看到你的问题了,是不是在编程论坛问过的?

我在那边已经给你回复过了。使用DrawImage方法。

dwwwing | 园豆:661 (小虾三级) | 2011-06-14 14:02
0

TextureBrush Txbrus = new TextureBrush(Your Image,WrapMode.Clamp);
Txbrus.TranslateTransform(this.X,this.Y)
e.Graphics.FillEllipse(Txbrus, this.ClientRectangle);

主要是TranslateTransform、WrapMode.Clamp

Cai,Jimi | 园豆:406 (菜鸟二级) | 2024-08-02 14:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册