在Winform中的图标按钮布局

6
我正在使用Windows 8和VS 2012。我给我的按钮添加了一个圆形图标:
this.btn.Image = Properties.Resources.icon;
this.btn.Size = Properties.Resources.icon.Size;

此外,我的表单还有背景图片:

this.BackgroundImage = Properties.Resources.sunset;

但是我的表单很丑,我的图标按钮是一个正方形:圆形图片在中间,灰色的颜色在角落里。

问题是如何显示表单背景而不是灰色颜色?

在此输入图像描述

感谢您的关注。


2
WinForms中的透明度是一种欺骗,实际上并不存在。我相信透明颜色是由其后面元素的BackgroundColor决定的。 - Sayse
1
你是在Linux上使用Mono还是在Windows上工作?在Linux上,WinForms的实现本身就很丑陋... - Baltasarq
要么将灰色区域变成棕色(如果背景颜色不改变),要么使用此帖子中的第二个答案 - TaW
@TaW 在 form.cs 中添加了 RoundButton 代码,然后在 form.cs[Design] 中出现了以下文本:“要向您的类添加组件,请将它们拖动到此处...”,而不是现有的表单。 - Eucalyptus
嗯,错误信息的缺失部分怎么办?如果自己编写的控件没有错误,可以从工具箱顶部拖动它。或者采用Reza的答案,在图像上稍微进行一些修改。 - TaW
显示剩余2条评论
2个回答

8
您可以设置按钮的一些属性来获得您需要的效果:
  • 将按钮的FlatStyle属性更改为Flat
  • 将其BackColor属性设置为Transparent
  • FlatAppearance中将BorderSize设置为0。
  • FlatAppearance中,您还可以将MouseDownBackColorMouseOverBackColor设置为窗体的背景颜色或您想要的颜色。

enter image description here


非常感谢!这正是我想要的。 - Eucalyptus

0

你可以让你的控件拥有透明背景,然后使用透明PNG作为图标,就完成了。

关于在控件上创建透明背景,请参阅Microsoft文章


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接