Xamarin.MacでNSScrollViewのコンテンツを中央に表示するサンプルアプリケーション

NSScrollViewのコンテンツを中央に表示するサンプルアプリケーションです。

ソースコードはこちら。

下記のプロジェクトをXamarin.Macに移植しました。

NSClipViewのConstrainBoundsRect()でClipViewの範囲を制限することで、DocumentViewを中央に描画します。

public partial class MyClipView : AppKit.NSClipView
{
    public override CoreGraphics.CGRect ConstrainBoundsRect(CoreGraphics.CGRect proposedBounds)
    {
        var documentBounds = this.DocumentView.Bounds;
        var delta = new CGPoint(
            documentBounds.Width - proposedBounds.Width,
            documentBounds.Height - proposedBounds.Height);
        var x = (delta.X < 0) ? (delta.X / 2) : Math.Max(0, Math.Min(proposedBounds.X, delta.X));
        var y = (delta.Y < 0) ? (delta.Y / 2) : Math.Max(0, Math.Min(proposedBounds.Y, delta.Y));
        proposedBounds.X = (System.nfloat)x;
        proposedBounds.Y = (System.nfloat)y;
        return proposedBounds;
    }
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です