如何从可移植类库中获取屏幕大小

本文关键字:获取 屏幕 类库 可移植 | 更新日期: 2023-09-27 17:56:06

所以在普通的.net程序集中,我可以访问SystemInformation.VirtualScreen。如何在 PCL 中完成此操作?

如何从可移植类库中获取屏幕大小

这就是我要做的:

  1. 在 PCL 项目中引入IVirtualScreen抽象
  2. 在桌面类库(引用 PCL 项目)中,提供一个适配器类,以将SystemInformation.VirtualScreen映射到 IVirtualScreen 接口。
  3. 引导桌面应用程序时,请将特定于平台的版本注册到 IoC 容器。

    // in your PCL project
    public interface IVirtualScreen {
         Rectangle Current { get; 
    }
    
    // in your desktop project
    public interface DesktopScreen : IVirtualScreen {
       public Rectangle Current { 
         get {
            return System.Windows.Forms.SystemInformation.VirtualScreen;
       }
    }
    

但这引出了一个问题:这是您在 PCL 项目中需要的东西吗?

由于UI技术(WinForms/WPF/SL/WP7/WP8/WinRT)之间的根本差异,您最终可能会做很多特定于平台的事情,虽然您可以为移动应用程序插入不同的IVirtualScreen实现,但这样做有价值吗?