public ToolbarManager(IControl control, ToolbarPanel parent) { if (parent == null) { throw new ArgumentNullException(nameof(parent)); } grip = new Grip(); ToolbarPanel.SetDockDirection(grip, ToolbarPanel.DockDirection.None); grip.PointerPressed += ClickArea_PointerPressed; grip.PointerReleased += ClickArea_PointerReleased; grip.PointerMoved += ClickArea_PointerMoved; this.GetObservable(ToolbarEndProperty).Subscribe((_) => { parent?.InvalidateArrange(); }); Transitions = new Transitions(); Transitions.AddRange(positionTransitions); this.parent = parent; childToolbar = control; parent.Children.Add(grip); }