Xamarin.MacでディスプレイのDPIを取得する

提供: MonoBook
ナビゲーションに移動 検索に移動

Xamarin.MacでディスプレイのDPIを取得する

Xamarin.MacでディスプレイのDPIを取得する。

            var val = (NSValue)NSScreen.MainScreen.DeviceDescription["NSDeviceResolution"];
            var dpi = val.SizeFValue;
            Console.WriteLine(dpi);

WindowクラスにもDeviceDescription["NSDeviceResolution"]があり、こちらで取得を試みるとウインドウが表示されているディスプレイの値が取れる模様。

    using System;
    using AppKit;
    using Foundation;

    public partial class ViewController : NSViewController
    {
        // 〜〜〜抜粋〜〜〜

        public override void MouseDown(NSEvent theEvent)
        {
            var val = (NSValue)this.View.Window.DeviceDescription["NSDeviceResolution"];
            var dpi = val.SizeFValue;
            Console.WriteLine(dpi);

            base.MouseDown(theEvent);
        }
    }