public ViewportPanel()
        {
            DataContext ??= new ViewportPanelModel();
            Model.PropertyChanged += _Model_PropertyChanged;

            InitializeComponent();
            OverlayContentPresenter.SetBinding(ContentPresenter.ContentProperty, BindingHelper.Create(this, nameof(OverlayContent), BindingMode.OneWay));

            _ViewportControllerChanged();
        }
        public override void OnApplyTemplate()
        {
            if (HorizontalAlignment == HorizontalAlignment.Left)
            {
                RenderTransform = new TranslateTransform(-OverlayWidth - HiddenMargin, 0);
                OverlayContentPresenter.SetValue(DockPanel.DockProperty, Dock.Left);
            }
            else
            {
                RenderTransform = new TranslateTransform(OverlayWidth + HiddenMargin, 0);
                OverlayContentPresenter.SetValue(DockPanel.DockProperty, Dock.Right);
            }

            OverlayContentPresenter.Width = OverlayWidth;
        }