「Xamarin.MacでRetina Displayか判別する」の版間の差分
ナビゲーションに移動
検索に移動
(→関連項目) |
imported>Administrator 細 (Administrator がページ「Xamarin.Mac/Retina Displayか判別する」を「Xamarin.MacでRetina Displayか判別する」に移動しました) |
||
(他の1人の利用者による、間の1版が非表示) | |||
39行目: | 39行目: | ||
</source> | </source> | ||
− | ==関連項目== | + | == 関連項目 == |
− | *[[Xamarin.Mac/ディスプレイの設定変更を検出する]] | + | * [[Xamairn.Mac/接続されているディスプレイの一覧を取得する]] |
− | *[[Xamarin.Mac/NSOpenGLViewをRetina Displayに対応させる]] | + | * [[Xamarin.Mac/ディスプレイの設定変更を検出する]] |
− | *[[MonoMac/フルスクリーン表示に対応する]] | + | * [[Xamarin.Mac/NSOpenGLViewをRetina Displayに対応させる]] |
+ | * [[MonoMac/フルスクリーン表示に対応する]] | ||
==参考文献== | ==参考文献== |
2017年12月21日 (木) 07:22時点における最新版
Mac OS XでRetina Displayに対応するアプリケーションを作るための基礎となる。
概要[編集 | ソースを編集]
retinaでググってもXamarinにしろObjective-CにしろiOSの情報ばかりでOSXの情報が少ないすぎて泣ける。 iMac 5K対応のアプリを作りたいね。
実装1[編集 | ソースを編集]
NSWindowsやNSScreenのBackingScaleFactorプロパティを調べる。
public partial class MainWindowController : NSWindowController
{
// 〜〜〜省略〜〜〜
public override void WindowDidLoad()
{
base.WindowDidLoad();
this.Window.DidMove += (object sender, EventArgs e) => {
// このウインドウがあるスクリーンが非Retinaならば1.0f、Retinaならば1.0fより大きな値となる。
var scale = this.Window.BackingScaleFactor;
Console.WriteLine(scale);
// NSScreenにもBackingScaleFactorがある
foreach (var screen in NSScreen.Screens)
{
Console.WriteLine(screen.ColorSpace + ", " + screen.BackingScaleFactor);
}
};
// Retinaと非Retinaのマルチスクリーン環境でウインドウを移動するなどして
// BackingScaleFactorの値が変化した際にはこのイベントが発生する。
this.Window.DidChangeBackingProperties += (object sender, EventArgs e) => {
Console.WriteLine(this.Window.BackingScaleFactor);
};
}
}
関連項目[編集 | ソースを編集]
- Xamairn.Mac/接続されているディスプレイの一覧を取得する
- Xamarin.Mac/ディスプレイの設定変更を検出する
- Xamarin.Mac/NSOpenGLViewをRetina Displayに対応させる
- MonoMac/フルスクリーン表示に対応する