c#如何确保我的应用程序在其他系统上看起来一样?

时间:2010-05-13 19:22:06

标签: c# windows-7 windows-vista windows-xp

如何确保开发的应用程序在其他Windows系统上看起来一样?

我现在正在开发一个带有.net 3.5框架的Windows7。(VS 2008)

作为一个例子,我有一个工具栏,我将其rendermode更改为系统,它在我的windows7上看起来没问题,但是当我在windows xp上运行应用程序时,它是不同的,甚至onmouseover背景颜色也不同。 ..

有没有办法让应用程序看起来像每个Windows系统(仅限于xt,vista和windows 7),比如用应用程序导出所有控件的设置!或任何技巧,以确保它将始终相同?

提前感谢

2 个答案:

答案 0 :(得分:1)

除非你自己渲染窗口,否则你的OS之间总会有细微差别,它们都有不同的方式来渲染原始控件,如文本框,面板等。

同样在Windows下,窗口/控件的背景颜色实际上(默认情况下)与windows中的主题设置相关联。

因此,允许人们使用自己的主题是一个优点。除非你主动使用自己的应用程序,否则你真的不应该强迫人们使用它。

答案 1 :(得分:0)

你必须抓住所有的颜色,字体,transperancy等,并使用它们来覆盖每个控件的Paint事件/方法,以便他们可以使用你的值。

我认为合适的唯一方法是在通过Paint()方法处理这些控件外观时编写自己的自定义控件,以便控件可以使用您提供的内容。痛苦!...

正如SLaks评论的那样,你不应该关心这些细节,让defaut用户首选项接管原生操作系统,因为随着时间的推移可能会遇到一些惊喜,就像Windows找不到字体一样,例如,将替换它的默认值,这可能会导致可怕的结果。这只是一个例子。需要其他人吗?