Я пытаюсь создать механизм, подобный плагину, для загрузки пользовательских GUI страниц (с использованием DLL) для главного окна во время выполнения. Каждая страница должна иметь совершенно разный макет, разные элементы управления. В то же время я не могу извлечь из обычной страницы WPF, потому что мне нужно обновить ее с несколькими дополнительными функциями (больше методов, больше событий и т. Д. c ...).
Этот код работает (полностью , включая загрузку этой страницы из DLL во время выполнения):
// custom page DLL
public partial class MyGamePage : Page { ... }
Но этот код не является:
// DLL shared between main window and custom pages DLLs
class GamePage : Page
{
public int Score;
//... and many more extra things I need here/
}
// custom page DLL
public partial class MyGamePage : GamePage { ... }
Ошибка говорит: «Частичные объявления MyGamePage не должны указывать разные базовые классы ... "
Если MyGamePage
получено из Page
(рабочее решение), XAML имеет запись root как <Page>...</Page>
. И это прекрасно работает.
Код, который не работает (где MyGamePage
происходит от GamePage
), я попытался изменить в XAML с <Page>...</Page>
на <local:GamePage>...</local:GamePage>
. Хотя кажется логичным, вызывает много новых ошибок. Не исправить исходную ошибку с помощью «Частичное объявление ...»;
Есть ли способ решить эту проблему?
Vojtek