差分
ナビゲーションに移動
検索に移動
[[Mac OS X]]で[[Retina Display]]に対応するアプリケーションを作るための基礎となる。
==概要==
retinaで[[ググって]]も[[Xamarin]]にしろ[[Objective-C]]にしろ[[iOS]]の情報ばかりで[[OSX]]の情報が少ないすぎて泣ける。
[[iMac 5K]]対応のアプリを作りたいね。
==実装1==
NSWindowsやNSScreenのBackingScaleFactorプロパティを調べる。
<source lang="csharp">
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);
};
}
}
</source>
==関連項目==
*[[Xamarin.Mac/ディスプレイの設定変更を検出する]]
==参考文献==
{{reflist}}
{{stub}}
[[category:Xamarin.Mac]]
==概要==
retinaで[[ググって]]も[[Xamarin]]にしろ[[Objective-C]]にしろ[[iOS]]の情報ばかりで[[OSX]]の情報が少ないすぎて泣ける。
[[iMac 5K]]対応のアプリを作りたいね。
==実装1==
NSWindowsやNSScreenのBackingScaleFactorプロパティを調べる。
<source lang="csharp">
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);
};
}
}
</source>
==関連項目==
*[[Xamarin.Mac/ディスプレイの設定変更を検出する]]
==参考文献==
{{reflist}}
{{stub}}
[[category:Xamarin.Mac]]