Как вынести повторяющиеся обработчики событий окна в отдельный шаблон в WPF?

Имеется много окон. Каждому из них в xaml я задаю кастомный блок с кнопками управления. Так же есть 3 обработчика события:

private void WindowPanel_MouseDown(object sender, MouseButtonEventArgs e)
    {
        if (e.LeftButton == MouseButtonState.Pressed)
            DragMove();
    }
    private void WindowCloseButton_Click(object sender, RoutedEventArgs e)
    {
        this.DialogResult = true;
    }

    private void WindowHideButton_Click(object sender, RoutedEventArgs e)
    {
        this.WindowState = WindowState.Minimized;
    }

Я хочу вынести их в отдельный интерфейс(?) или т.п., но выходит так себе. Мне уже советовали создать UserControl, в том числе с целью избавления от копипаста в xaml, но я так и не понял, как он работает. Те же обработчики там не прописать, UserControl не понимает this, ибо он не является Window. Ну или же я плохо разобрался. Спасибо


Ответы (0 шт):