怎样能使C# WinForm程序在不同的系统主题环境中保持不变的视觉样式?

kezhon 2009-03-29 12:37:16
WinForm程序在不同的操作系统,不同的系统主题环境中,显示不同的视觉样式。比如在XP中,边框和按钮都会显示XP的风格,在Vista中显示Vista的风格,不同的主题中,显示的风格也不同。
我想让这个程序不论在什么系统和主题中,都能保持显示“经典风格”,这样程序的风格就能一致。
有没有办法?
...全文
1073 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
sadshell 2010-12-23
  • 打赏
  • 举报
回复

Application.VisualStyleState = System.Windows.Forms.VisualStyles.VisualStyleState.NoneEnabled;

这样控件就使用经典样式了。

xyz136299110 2009-04-04
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wjhgzx 的回复:]
去下载一个皮肤。之后添加引用就可以吧。不知道这样会不会合你的意思。
方法如下:
下载一个皮肤,保存到目录下,之后添加引用(如IrisSkin2.dll).
之后在启动的那个窗体里的Load事件里添加:skinEngine1.SkinFile = "SteelBlack.ssk";
如:
public FrmLogin()
{
InitializeComponent();
skinEngine1.SkinFile = "SteelBlack.ssk";
}
[/Quote]

只用过这个。。。
jqrr00 2009-04-04
  • 打赏
  • 举报
回复
添加皮肤啊!~
先添加第三方控件,再把皮肤放到程序的根目录,然后在窗体加载之前添加
skinEngine1.SkinFile = "CalmnessColor2.ssk(皮肤名称)";
也就是在
public MainForm() {
InitializeComponent();
skinEngine1.SkinFile = "CalmnessColor2.ssk";
david_anwei 2009-04-03
  • 打赏
  • 举报
回复
好像只能用皮肤解决这个问题!
修改一下昵称 2009-04-03
  • 打赏
  • 举报
回复
是啊皮肤是最佳选择
beargo 2009-04-03
  • 打赏
  • 举报
回复
怎么不行??
FormBorderStyle = FormBorderStyle.None
把窗体原有皮肤去掉,然后自己用皮肤图片做个皮肤就OK了.
lethwei 2009-04-03
  • 打赏
  • 举报
回复
mark~
cja03 2009-04-02
  • 打赏
  • 举报
回复
重绘一个窗体,然后所有窗体都从这个窗体继承。
MessageBox就需要自己做一个了。
mal5338 2009-04-02
  • 打赏
  • 举报
回复

1)下一个IrisSkin2第三方控件,可以用破解版的
然后制定ssk文件就行了
public FrmLogin()
{
InitializeComponent();
skinEngine1.SkinFile = "Steelgreen.ssk";
}
(ssk文件要放在与可执行文件的同目录下)
2)也是用第三方控件 ——DevComponents.DotNetBar2
然后让要换肤的窗体继承与控件中的Office2007Form
Form1 : DevComponents.DotNetBar.Office2007Form
(该控件还包含了许多很好的控件可以试试)


这两种方法我都用过,第一种换肤的选择多,第二种只能用Office2007 的皮肤
冷月孤峰 2009-04-02
  • 打赏
  • 举报
回复
使用皮肤控件
要么自己重绘!
018 2009-04-02
  • 打赏
  • 举报
回复
既然用了.net,为什么不要它的皮肤呢?

“不折腾”
yl365617581 2009-03-31
  • 打赏
  • 举报
回复
还有个方法 就是自己 重绘窗体和控件。
genius_tong 2009-03-30
  • 打赏
  • 举报
回复
皮肤可以的吧~
深海之蓝 2009-03-30
  • 打赏
  • 举报
回复
mark 学习一下
leehong0704 2009-03-30
  • 打赏
  • 举报
回复
js 模拟多线早就弄过了
热学沸腾56 2009-03-30
  • 打赏
  • 举报
回复
学习,接分
an_ding 2009-03-30
  • 打赏
  • 举报
回复
用第三方控件提供的主题样式,里面的按钮等控件也用它提供的。
我是这样实现的,期待其他解决方案!!!
提供一个dll:DevComponents.DotNetBar2.dll可以在网上下载。添加应用就可以使用
代码:
public partial class Form1 : DevComponents.DotNetBar.Office2007Form

该样式和Office2007差不多,还是挺好看的
ls3697264 2009-03-30
  • 打赏
  • 举报
回复
JF
wolf1118baby 2009-03-30
  • 打赏
  • 举报
回复
支持皮肤的说法!
kezhon 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 wesleyluo 的回复:]
你是什么系统啊?我的去掉了可以的。我的XP sp2
[/Quote]我是XP sp3。
如果你不把系统主题设为“经典”,就算去掉Application.EnableVisualStyles(),也只是显示"XP 风格"的基本样式(乳白色),而不是“经典样式”(灰色)。
加载更多回复(18)

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧