使用了ImageList控件,绑定代码如下ImageList.Images.Add(Image.FromFile("图片路径")); ,想实现的效果是让所有ImageList中的图片都实现四个角是圆角的效果 ,请高手指点 谢谢 !
解决方案 »
- 有N个点求一条直线使得所有点到直线的距离和最小的算法
- UltraTextEditor的Text属性问题
- C# winform 圆角无边窗体,怎么让Normal和切换到Maximized,都能让窗体完整显示呢?
- 还是C# winform的问题 急急急急~~~~~~~
- Visual C# 2010 Recipes: A Problem-Solution Approach
- UserControl与Form之间怎么交互?
- 搞了一夜的报表,自报表没有解决,求救!在线
- 窗体和表格间的消息传递
- 各位大哥哥大姐姐,用C#开发一个怎样的中小项目可以锻炼编程能力啊?留言就放分
- C#如何用代码判断照片是否被图片处理工具(如:Photoshop 、Turbo Photo)处理过?
- 进度条显示
- c#串口通信
这句话的意思是对本窗体所有白色地方做透明处理。
最后把你的图片改成圆角并且设成圆角设成白色就可以了
比如用png格式的图片可以做圆角 也可以直接被image加载
第二种方法有些复杂 需要你重绘控件 使图片在控件中呈现圆角 以后即使你改变图片 也会一直保持圆角
比如 重绘一个panel使之圆角且有边线 需要重写重绘方法举例代码如下 private int Round = 8; protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e); //这里会绘image属性图片 e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; DrawFormBorder(e.Graphics);
} // 画边框
public void DrawFormBorder(Graphics g)
{
using(GraphicsPath formBorderPath = new GraphicsPath())
{
formBorderPath.AddArc(0, 0, Round, Round, 180, 90);
formBorderPath.AddArc(Width - Round - 1, 0, Round, Round, 270, 90);
formBorderPath.AddArc(Width - Round - 1, Height - Round - 1, Round, Round, 0, 90);
formBorderPath.AddArc(0, Height - Round - 1, Round, Round, 90, 90); formBorderPath.CloseAllFigures(); using(Pen pen = new Pen(Color.Black))//这里可以改变边框的宽度 pen.Width
{
g.DrawPath(pen, formBorderPath);
}
}
} //控件大小改变后 重新划定空间区域
protected override void OnResize(System.EventArgs e)
{
base.OnResize(e); using(GraphicsPath formBorderPath = new GraphicsPath())
{
formBorderPath.AddArc(0, 0, Round, Round, 180, 90);
formBorderPath.AddArc(Width - Round, 0, Round, Round, 270, 90);
formBorderPath.AddArc(Width - Round, Height - Round, Round, Round, 0, 90);
formBorderPath.AddArc(0, Height - Round, Round, Round, 90, 90); formBorderPath.CloseAllFigures(); this.Region = new Region(formBorderPath);
} this.Invalidate(true);
}有些东西要慢慢琢磨的