wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了win7中写的winforms应用程序在win xp上看起来不同.为什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我在win 7上用winforms(.net 4.0)编写了一个简单的应用程序.应用程序看起来我想要的但是当我在windows xp上尝试它时,一切看起来都不一样. 我已经创建了一个示例来展示它在win 7和xp上的外观. 我可以做些什么来在两个系统上看到相同的外观? 问题不仅在于背景和字体颜色,还在于控件.在这里,我展示了数字版本的外观,但是对于表格布局我也有问题. private void I
我在win 7上用winforms(.net 4.0)编写了一个简单的应用程序.应用程序看起来我想要的但是当我在windows xp上尝试它时,一切看起来都不一样.

我已经创建了一个示例来展示它在win 7和xp上的外观.
我可以做些什么来在两个系统上看到相同的外观?
问题不仅在于背景和字体颜色,还在于控件.在这里,我展示了数字版本的外观,但是对于表格布局我也有问题.

private void InitializeComponent()
    {
        this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
        this.groupBox1 = new System.Windows.Forms.GroupBox();
        ((System.ComponentModel.ISupporTinitializE)(this.numericUpDown1)).beginInit();
        this.SuspendLayout();
        // 
        // numericUpDown1
        // 
        this.numericUpDown1.decimalPlaces = 2;
        this.numericUpDown1.Increment = new decimal(new int[] {
        1,131072});
        this.numericUpDown1.LOCATIOn = new System.Drawing.Point(21,26);
        this.numericUpDown1.Maximum = new decimal(new int[] {
        1,0});
        this.numericUpDown1.Name = "numericUpDown1";
        this.numericUpDown1.Size = new System.Drawing.Size(54,22);
        this.numericUpDown1.TabIndex = 0;
        // 
        // groupBox1
        // 
        this.groupBox1.LOCATIOn = new System.Drawing.Point(21,82);
        this.groupBox1.Name = "groupBox1";
        this.groupBox1.Size = new System.Drawing.Size(226,99);
        this.groupBox1.TabIndex = 1;
        this.groupBox1.TabStop = false;
        this.groupBox1.Text = "groupBox1";
        // 
        // Form1
        // 
        this.AutoScaleDimensions = new System.Drawing.SizeF(8F,16F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.BACkColor = System.Drawing.SystemColors.ActiveCaption;
        this.CLIENtSize = new System.Drawing.Size(407,331);
        this.Controls.Add(this.groupBox1);
        this.Controls.Add(this.numericUpDown1);
        this.Name = "Form1";
        this.Text = "Form1";
        ((System.ComponentModel.ISupporTinitializE)(this.numericUpDown1)).EndInit();
        this.ResumeLayout(false);

    }

我没有@L_450_28@xp颜色主题.
我在win xp的两台不同的计算机上得到了相同的结果.

this.AutoScaleDimensions = new System.Drawing.SizeF(8F,16F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    this.BACkColor = System.Drawing.SystemColors.ActiveCaption;

这些是导致您麻烦的陈述.我首先要选择一个简单的,不要使形式的BACkColor与标题颜色相同.如果要选择主题颜色,则只选择“控制”颜色.然你通常会把旧战舰变成灰色.选择中性柔和色是您最好的选择,但尊重用户的偏好永远不会让您陷入困境.

AutoScaleDimensions属性是基于视频适配器的DPI设置自动生成的.这与XP机器不同.您的开发机器上有120点/英寸,XP上有96 DPI(认值).在Win7上,由小部件设置,看起来像一个标尺,控制面板显示,“设置自定义文本大小(DPI)”.

AutoScaleMode属性已正确设置为Font.这可确保自动缩放所有控件以适合字体大小.由于DPI设置较高,Win7机器上的哪个更大.因此,表格及其控件在XP机器上缩小. NumericUpDown控件的问题在于它有点错误(不止一种方式),它不能正确缩放上/下字形.它们按比例过大,没有为文本部分留出足够的空间.简单地使它更宽一点就@L_696_49@了这个问题.

自动缩放相当丑陋,很少100%完美.最好的办法是将您的开发机器切换到96 dpi.这是一个非常常见的环境,至今仍在扩展几乎总是比缩小更好.

大佬总结

以上是大佬教程为你收集整理的win7中写的winforms应用程序在win xp上看起来不同.为什么?全部内容,希望文章能够帮你解决win7中写的winforms应用程序在win xp上看起来不同.为什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。