DockPanel и пользовательский интерфейс управления с ленточным управлением - PullRequest
0 голосов
/ 31 декабря 2010

У меня есть элемент управления ленты с несколькими кнопками, которые должны отображать различные окна / пользовательский элемент управления в основной области окна. Я думаю о создании пользовательского элемента управления для каждой «функциональной области», относящейся к ее кнопке на ленте.

Что-то вроде

Public Class RibbonViewModel
Public ReadOnly ucPreferences As UserControl = New ucPreferences
Public ReadOnly ucMain As UserControl = New ucMain
End Class

Пользователь нажимает кнопку предпочтения, и я сделаю

dockMain.Children.Clear()
dockMain.Children.Add(oRibbon.ucPreferences)

Это работает с макетом, но я не уверен, с какими проблемами я могу столкнуться.

1 Ответ

1 голос
/ 31 декабря 2010

Это, безусловно, будет работать;однако более надежный подход будет использовать Prism ... точнее, IRegionManager .

Это обеспечивает способ определения регионов в вашем приложении, где вы можете перемещать контент в пределах региона.Примером может быть ...

    <ad:DockingManager Grid.Row="1" Margin="0">
        <ad:DocumentPane x:Name="WorkspaceRegion" prismrgn:RegionManager.RegionName="WorkspaceRegion"/>
    </ad:DockingManager>

... где ad - пространство имен для сборки AvalonDock ;однако это может быть ваш DockPanel точно так же.На это можно ссылаться в следующем коде:*.

Это обеспечивает хорошее разделение в отношении действия Ribbon, которое приведет к отображению интерфейса для данного действия.Он также предоставляет абстракцию для самого региона, т. Е. Это DockPanel или какой-то другой элемент управления.

Как указывалось ранее, ваш первоначальный подход будет работать.Нужно ли выбирать такую ​​среду, как Prism, чтобы изолировать проблемы, а также расширить функциональность, зависит от масштаба этого проекта как сейчас, так и в будущем.

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