Xamarin.Macでウインドウ座標をビュー座標に変換する

提供: MonoBook
2017年12月21日 (木) 07:21時点におけるimported>Administratorによる版 (Administrator がページ「Xamarin.Mac/ウインドウ座標をビュー座標に変換する」を「Xamarin.Macでウインドウ座標をビュー座標に変換する」に移動しました)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

Xamarin.MacにおけるMouseDownなどのイベント引数で飛んでくるマウスの座標は「ウインドウ座標」となっている。

しかし、ほとんどの場合、マウスクリックされた場所の「ビュー座標」が欲しい。 とくにNSViewを継承したCustomViewを作っている場合はウインドウ座標とか外の世界の話であってそんなものを貰っても困る。 そういうときはウインドウ座標をビュー座標に変換する。

public class CustomView : NSView
{
    public override void MouseDown(NSEvent theEvent)
    {
        // これウインドウ座標
        var wLocation = theEvent.LocationInWindow;
        
        // ビュー座標に変換
        // 似たような名前のメソッドがいっぱいあるので注意。
        var vLocation = this.ConvertPointFromView(wLocation, aView:null);
    }
}

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]