如何从便携式类库中获取屏幕大小?

时间:2013-01-27 07:16:03

标签: c# .net portable-class-library

因此,在正常的.net程序集中,我可以访问SystemInformation.VirtualScreen。如何从PCL中完成这项工作?

1 个答案:

答案 0 :(得分:2)

这就是我要做的事情:

  1. 在您的PCL项目中引入IVirtualScreen的抽象
  2. 在Desktop类库(引用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;
       }
    }
    
  4. 但这引出了一个问题:这是你PCL项目中需要的东西吗?

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