注册 登录
编程论坛 C# 论坛

Wince嵌入式开发时,C#怎么绘制圆角的控件?

showey 发布于 2011-04-23 17:25, 4208 次点击
想把控件做下美化,可是智能设备中很多方法都没了,不能够实现!!调用WinApi的CreateRoundRectRgn函数,缺出现找不到该函数,无语了!!请问除了用图片来做,还有其他更好的方法没??
13 回复
#2
vxbb2011-04-26 11:23

 我从 opennetcf库里抠了个 opennetcf.drawing出来。
可以绘制圆角了。  
opennetcf.drawing 传附件了,
只有本站会员才能查看附件,请 登录


只有本站会员才能查看附件,请 登录


实例代码:
程序代码:
using System;
using System.Drawing;
using System.Windows.Forms;
using OpenNETCF.Drawing;

namespace SmartButton
{
    public partial class UserControl1 : UserControl
    {
        public UserControl1()
        {
            InitializeComponent();
        }
        /// <summary>
        
/// 控件重绘
        
/// </summary>
        
/// <param name="e"></param>
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            e.Graphics.Clear(Color.Transparent);

            IntPtr hdc = e.Graphics.GetHdc();
            GraphicsEx gx = GraphicsEx.FromHdc(hdc);
            PenEx p=new PenEx(Color.Black);
            gx.DrawRoundRectangle(p, this.ClientRectangle, new Size(10, 10));

        }
        /// <summary>
        
/// 将控件背景设置为透明( System.Drawing.Color.Transparent;)
        
/// 需要重写这个方法,但不用做任何事,防止控件闪烁
        
/// </summary>
        
/// <param name="e"></param>
        protected override void OnPaintBackground(PaintEventArgs e)
        {

        }
    }
}
#3
vxbb2011-04-26 11:26
这个opennetcf.drawing提供的方法还是不够用。
另一个OpenNETCF.GDIPlus 提供方法较多
但是报bug o(╯□╰)o    谁还有WM的GDI+库共享下
#4
showey2011-04-28 15:37
回复 2楼 vxbb
请问下,那要是想在该控件中添加图片,该怎么做让那个图片能够也成圆角啊
#5
vxbb2011-04-28 23:21
回复 4楼 showey

你研究下 OpenNETCF.GDIPlus吧。
里面提供了GraphicsPath 。

Using GDI+ on Windows Mobile
http://www.

只有本站会员才能查看附件,请 登录


[ 本帖最后由 vxbb 于 2011-4-28 23:26 编辑 ]
#6
showey2011-04-30 09:24
回复 5楼 vxbb
悲剧了!!转换不了,我打不开那个程序,版本转换失败
#7
vxbb2011-04-30 10:09
回复 6楼 showey
...
这个是我用的vs2008编译过的。

只有本站会员才能查看附件,请 登录
#8
showey2011-04-30 13:45
我的开发环境是wince 用的是.NET2.0 现在出现了个问题 就是 找不到gdiplus动态库,程序运行不了!!要去下载一个吗?
#9
vxbb2011-04-30 14:30
回复 8楼 showey
添加引用OpenNETCF.GDIPlus.dll
然后加一句  using OpenNETCF.GDIPlus;

#10
showey2011-04-30 16:00
谢谢你啦,这么热心的帮我!!!
#11
showey2011-04-30 16:00
回复 9楼 vxbb
谢谢你啦,这么热心的帮我,再发次 让您看到 哈哈
#12
vxbb2011-04-30 16:09
回复 10楼 showey
我也是刚开始搞Windows Mobile的开发,
原先winform的GDI+好多方法不能用了,UserControl 也不支持Region设置。
不好设置自定义控件的边框形状。

不如做个透明的UserControl 。
用ps把图片先做成圆角的,再画上去。 效果应该也不错
就用上面2楼写的方法,怎么样?
#13
dudu132011-11-08 15:31
帮的我的大忙,谢谢
#14
D5J2014-08-17 11:14
悲剧了!!转换不了,我打不开那个程序,版本转换失败,我的版本是vs2010的
1