none
如何得到当前显示的分辨率,如何设置当前显示的分辨率 RRS feed

  • 问题

  • C#中如何得到当前显示的准确分辨率(如1024×768),如何设置分辨率,并保证颜色是最高位32位的,谢谢!
    guiwenyang
    2009年10月13日 7:28

答案

  • 你好!

    获取分辨率可以使用 Screen 类

    知识改变命运,奋斗成就人生!
    • 已标记为答案 YiChun Chen 2009年10月14日 10:04
    2009年10月13日 7:43
    版主
  • 你好 Screen.AllScreen类可以获取所有显示器

    然后通过Screen的属性BitsPerPixel属性来查看

    Screen[] screens = Screen.AllScreens;
             foreach (Screen s in screens)
             {
                MessageBox.Show(s.BitsPerPixel.ToString());
             }

    还可以通过Bounds获取屏幕尺寸
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    • 已标记为答案 YiChun Chen 2009年10月14日 10:16
    2009年10月13日 7:44
    版主
  • 你好。

    通过.NET Framework 提供的类库获取显示分辨率的代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Drawing;

    namespace Problem2_2009_10_13
    {
        class Program
        {
            static void Main(string[] args)
            {
                Rectangle r = Screen.PrimaryScreen.Bounds;
                Console.WriteLine(string.Format("Height:{0}", SystemInformation.PrimaryMonitorSize.Height));
                Console.WriteLine(string.Format("Width:{0}", SystemInformation.PrimaryMonitorSize.Width));

                Console.ReadLine();
            }
        }
    }

    设置的分辨率的途径似乎只有通过WIN32 API调用。
    提供一个解决方案网址
    http://blog.csdn.net/net_lover/archive/2003/07/25/6937.aspx

    • 已标记为答案 YiChun Chen 2009年10月14日 10:17
    2009年10月13日 8:06
  • 你好!
         获取分辨率可以这样:
         System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width  
         System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height

         设置分辨率有些复杂,需要使用Windows API:
         具体可以参考:
         http://zhidao.baidu.com/question/65489758.html
        
    周雪峰
    • 已标记为答案 YiChun Chen 2009年10月14日 10:17
    2009年10月13日 12:15
    版主

全部回复

  • 你好!

    获取分辨率可以使用 Screen 类

    知识改变命运,奋斗成就人生!
    • 已标记为答案 YiChun Chen 2009年10月14日 10:04
    2009年10月13日 7:43
    版主
  • 你好 Screen.AllScreen类可以获取所有显示器

    然后通过Screen的属性BitsPerPixel属性来查看

    Screen[] screens = Screen.AllScreens;
             foreach (Screen s in screens)
             {
                MessageBox.Show(s.BitsPerPixel.ToString());
             }

    还可以通过Bounds获取屏幕尺寸
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    • 已标记为答案 YiChun Chen 2009年10月14日 10:16
    2009年10月13日 7:44
    版主
  • 你好。

    通过.NET Framework 提供的类库获取显示分辨率的代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Drawing;

    namespace Problem2_2009_10_13
    {
        class Program
        {
            static void Main(string[] args)
            {
                Rectangle r = Screen.PrimaryScreen.Bounds;
                Console.WriteLine(string.Format("Height:{0}", SystemInformation.PrimaryMonitorSize.Height));
                Console.WriteLine(string.Format("Width:{0}", SystemInformation.PrimaryMonitorSize.Width));

                Console.ReadLine();
            }
        }
    }

    设置的分辨率的途径似乎只有通过WIN32 API调用。
    提供一个解决方案网址
    http://blog.csdn.net/net_lover/archive/2003/07/25/6937.aspx

    • 已标记为答案 YiChun Chen 2009年10月14日 10:17
    2009年10月13日 8:06
  • 你好!
         获取分辨率可以这样:
         System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width  
         System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height

         设置分辨率有些复杂,需要使用Windows API:
         具体可以参考:
         http://zhidao.baidu.com/question/65489758.html
        
    周雪峰
    • 已标记为答案 YiChun Chen 2009年10月14日 10:17
    2009年10月13日 12:15
    版主