SystemParameters
提供的接口,其实是获取渲染过程中的实际高宽,是受系统DPI设置的影响。
以 1920 * 1080 和 125% DPI为例:
分辨率高度:1080,实际获取的高度为:864。 分辨率宽度:1920,实际获取的宽度为:1536。
结果展示
代码
需要额外的包 using System.Drawing;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApp16
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
double currentGraphics = Graphics.FromHwnd(new WindowInteropHelper(Application.Current.MainWindow).Handle).DpiX / 96;
string screenHeight = (SystemParameters.PrimaryScreenHeight* currentGraphics).ToString();
string screenWidth = (SystemParameters.PrimaryScreenWidth * currentGraphics).ToString();
InitializeComponent();
textBlock.Text = screenWidth + "x" + screenHeight;
}
}
}
参考文献
WPF 如何正确获取屏幕分辨率 (huchengv5.github.io)