「Xamarin.Macでウインドウ座標をビュー座標に変換する」の版間の差分
ナビゲーションに移動
検索に移動
6行目: | 6行目: | ||
<source lang="csharp"> | <source lang="csharp"> | ||
− | public | + | public class CustomView : NSView |
{ | { | ||
− | var wLocation = theEvent.LocationInWindow; | + | public override void MouseDown(NSEvent theEvent) |
− | + | { | |
+ | // これウインドウ座標 | ||
+ | var wLocation = theEvent.LocationInWindow; | ||
+ | |||
+ | // ビュー座標に変換 | ||
+ | // 似たような名前のメソッドがいっぱいあるので注意。 | ||
+ | var vLocation = this.ConvertPointFromView(wLocation, aView:null); | ||
+ | } | ||
} | } | ||
</source> | </source> |
2017年6月13日 (火) 02:29時点における版
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);
}
}
関連項目
- Xamarin.Mac/CoreGraphicsの基本的な使い方
- Xamarin.Mac/CoreGraphicsでアンチエイリアスの有効無効を設定する
- Xamarin.Mac/NSViewの座標系を左下原点から左上原点に変更する
- Xamarin.Mac/CGImageをNSImageに変換する
- Xamarin.Mac/CGImageをファイルに保存する
- Xamarin.Mac/NSOpenGLViewを使う
- Xamarin.Mac/NSOpenGLViewをRetina Displayに対応させる
- Xamarin.Mac/スクリーンキャプチャを撮る
- Xamarin.Mac/ディスプレイの物理サイズを取得する