问题描述:
1、我有一个全屏显示的WPF软件,使用了ViewBox做自适应窗口显示,我想知道在已知电脑的分辨率、控件的原始大小尺寸的情况下如何计算在不同分辨率下控件缩放了多少?比如在1440 : 900的情况下是多少?再比如在800 : 600的情况下又是多少?该如何计算该控件在不同的电脑分辨率缩放的大小呢?

解决方案 »

  1.   

    内容用viewbox包起来,窗口用换算
     double screenWidth = SystemParameters.PrimaryScreenWidth;
                int resolutionWidth = System.Windows.Forms.SystemInformation.VirtualScreen.Width;
                double scale = resolutionWidth / screenWidth ;
                this.Width = width / scale;
                this.Height = height/ scale; 
      

  2.   

    话说和屏幕么多大关系. 设置软件控件的 Anchor 和 dock 就好了 
    如果要获得屏幕分辨率可以用
    Screen.PrimaryScreen.WorkingArea.Width.ToString();
    Screen.PrimaryScreen.WorkingArea.Height.ToString();
      

  3.   

    screenWidth 和resolutionWidth 得到的是一样的数据啊,怎么得到scale,这个scale不管在什么情况下都是得到的为1。
      

  4.   

    this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;http://msdn.microsoft.com/zh-cn/library/ms229649(VS.80).aspx
      

  5.   


    这也是 wpf 程序?wpf 的呈现机制本身就和设备无关 使用的是逻辑布局 干嘛要自动转换呢你学 excel word 一样做个缩放的功能 让用户自己去玩就是啦
      

  6.   

    我在WPF中使用了WinForm的控件,使用WindowsFormsHost包含了WinForm的控件,我想WindowsFormsHost中包含的控件是否能够跟着WindowsFormsHost的大小而改变,
    1)现在我在不同的计算机下运行软件WinForm中的PictureBox控件总是不会自动调整大小,所以我想是否可以通过计算机的分辨率计算出显示那块的大小,然后我就可以把我需要显示的内容显示在计算出来的大小中了
    2)现在遇到的问题就是这个值一直算不出来,是写死了的值,在1440:900的分辨率下面显示完全了,但是换了一个分辨率就又出现问题了,主要是显示区域不能够根据分辨率来自适应。
      

  7.   

    http://msdn.microsoft.com/zh-cn/library/ms744952(VS.90).aspx
      

  8.   

    http://msdn.microsoft.com/zh-cn/library/ms744952(VS.90).aspx
      

  9.   

    http://msdn.microsoft.com/zh-cn/library/ms744952(VS.90).aspx