Как использовать наследование в WPF - PullRequest
0 голосов
/ 02 ноября 2009

Я пытаюсь использовать наследование в WPF. Я задавал вопрос об этом ранее, но никто не ответил правильно. Поэтому я пытаюсь создать класс BaseWindow с некоторыми элементами пользовательского интерфейса, и я хочу, чтобы другие окна, которые наследуют мое BaseWindow, имели эти элементы пользовательского интерфейса. Как это сделать. Моя практика с приложениями WinForms больше не работает. Может быть, есть несколько простых примеров или что-то в этом роде? Спасибо

Ответы [ 2 ]

0 голосов
/ 02 ноября 2009

Если вы хотите наследовать от окна, вам нужно создать реализацию окна только в коде, и затем вы можете наследовать от этого - обратите внимание, что ваша декларация Window в XAML должна измениться, чтобы указывать на этот код например,

<src:BaseWindow xmlns:src="clr-namespace:BaseWindowNamespace" ...>

Если вы определите базовое окно с помощью XAML, вы получите следующие ошибки:

" 'WpfApplication1.Window1.InitializeComponent ()' скрывает унаследованный член BaseWindowNamespace.BaseWindow.InitializeComponent ()». Используйте новое ключевое слово, если скрытие было предназначенный "

"BaseWindowNamespace.BaseWindow не может быть корнем файла XAML, потому что он был определен с использованием XAML "

Теперь, на этом этапе, я должен указать, что это противоречит тому, как вы должны обрабатывать композицию своего окна. «Стандартный» способ сделать это - использовать шаблоны контента для отображения пользовательских элементов управления, которые можно поменять местами и стилизовать, чтобы получить другой внешний вид и функциональность. Таким образом, функция окна становится функцией жгута проводов, и вы можете добиться четкого разделения содержимого, которое может быть легко реализовано с помощью MVVM.

0 голосов
/ 02 ноября 2009

Пробовали ли вы тег BasedOn? Я не знаю насчет окон, но это то, что вы используете для пользовательских элементов управления AFAIK.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...