Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#如何确保我的应用程序在其他系统上看起来相同?_C#_Windows 7_Windows Vista_Windows Xp - Fatal编程技术网

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

c#如何确保我的应用程序在其他系统上看起来相同?,c#,windows-7,windows-vista,windows-xp,C#,Windows 7,Windows Vista,Windows Xp,如何确保iam开发的应用程序在其他windows系统上看起来相同 我现在正在windows7上开发.net 3.5框架。。(VS 2008) 例如,我有一个工具栏,我将它的rendermode改为system,它在我的windows7上看起来还可以,但是当我在WindowsXP上运行应用程序时,它是不同的,甚至onmouseover的背景颜色也是不同的 有没有办法让应用程序看起来像每个windows系统(仅限于abt xp、vista和windows 7),比如说像导出应用程序中所有控件的设置!

如何确保iam开发的应用程序在其他windows系统上看起来相同

我现在正在windows7上开发.net 3.5框架。。(VS 2008)

例如,我有一个工具栏,我将它的rendermode改为system,它在我的windows7上看起来还可以,但是当我在WindowsXP上运行应用程序时,它是不同的,甚至onmouseover的背景颜色也是不同的

有没有办法让应用程序看起来像每个windows系统(仅限于abt xp、vista和windows 7),比如说像导出应用程序中所有控件的设置!?或者有什么把戏来确保它总是一样的


提前感谢

除非您自己渲染窗口,否则操作系统之间总是会有细微差别,它们都有不同的方式渲染基本控件,如文本框、面板等

此外,在windows下,窗口/控件的背景色实际上(默认情况下)与windows中的主题集相关联


因此,允许人们使用自己的主题是一个加号。除非你正在为自己的应用程序制作主题,否则你真的不应该强迫人们使用样式。

你必须掌握所有的颜色、字体、透明性等,并使用它们覆盖每个控件的绘制事件/方法,以便它们可以使用你的值

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


正如SLaks所评论的,您不应该关心这些细节,而应该让defaut用户首选项接管本机操作系统,因为随着时间的推移,可能会遇到一些意外情况,例如Windows找不到字体,它将用默认字体替换,这可能会导致可怕的结果。这只是一个例子。需要其他人吗?

您不应该这样做。应用程序应与本机操作系统的设计和配色方案相匹配。