none
我用C#(VS2010)编译了一个程序,在不同PC运行有不同的外观?(内详有图) RRS feed

  • 问题

  • 我测试的电脑有4台,每一台的电脑都是XP SP3(显卡,CPU等配置都不同)

    每一台都装了.net framework4

    每一台的DPI都是标准96、大图标、大字体

    唯一不同的是一台1080P分辨率,一台1440x900,另外两台均是720P

    程序我是在1080P的机子编译的,调整好所有控件的对齐位置

    然后分别放到另外3台电脑运行程序,其中有两台机运行时有控件无法对齐(其中一台720P和1440x900),

    但是又有另外一台720P的效果和1080P完全一样

    我用1080P的电脑设置时是这样放控件的:

    结果其中一台720P和1440x900运行时变成这样:(进图条和listbox没对齐)

    这个问题是什么原因呢?

    <embed height="0" hidden="true" id="lingoes_plugin_object" type="application/lingoes-npruntime-capture-word-plugin" width="0" />

    <embed height="0" hidden="true" id="lingoes_plugin_object" type="application/lingoes-npruntime-capture-word-plugin" width="0" />
    • 已编辑 啊辉 2012年5月28日 1:22 修改标题
    2012年5月28日 1:21

答案

  • 因为各客户端的 分辨率不同

    所以这就有可能造成布局错位

    也可以理解这种布局是位图 图像

    所以建议使用 类似矢量图的布局

    比如说 

    让listbox 的Y坐标 等于 进度条的Y坐标 减去 button1 的Y坐标 这样


    2012年5月28日 1:44

全部回复

  • 补充一下:

    我把在1080P那台电脑的工程,复制到出现界面问题的两台电脑分别打开,在VS环境下,控件也是没有对齐的,很奇怪。。

    <embed height="0" hidden="true" id="lingoes_plugin_object" type="application/lingoes-npruntime-capture-word-plugin" width="0" />
    2012年5月28日 1:24
  • 因为各客户端的 分辨率不同

    所以这就有可能造成布局错位

    也可以理解这种布局是位图 图像

    所以建议使用 类似矢量图的布局

    比如说 

    让listbox 的Y坐标 等于 进度条的Y坐标 减去 button1 的Y坐标 这样


    2012年5月28日 1:44