我正在将文档面板动态添加到docklayoutmanager管理器中的文档组,并且所有这些都包含其中的用户控件。现在,我已经停靠在某处或另一个地方,但除了包含某种图表的两个文档面板外,其中没有一个可以移出。基本上,它们都停靠在彼此旁边,它们可以浮动并且也可以停靠在它们的常规位置。但是如何使它只停靠在左侧或右侧,而不是顶部或标签。
这就是我动态创建这些面板的方式:
private void History()
{
string guid = System.Guid.NewGuid().ToString("N");
while (char.IsDigit(guid[0]))
guid = System.Guid.NewGuid().ToString("N");
HistoryViewModel historyViewModel = new HistoryViewModel
{
Caption = "History",
MinWidth = 300,
MinHeight = 200,
ViewName = "History",
HistoryImage = layoutFilePath.calenderImage,
BindableName = guid,
CanDrag = true,
CanDock = true,
CanFloat = true
};
((IMVVMDockingProperties)historyViewModel).TargetName = "PanelHost";
WidgetList.Add(historyViewModel);
}
历史视图模型只不过是从该用户控件中获取的视图模型。
Thanx提前帮助你!
答案 0 :(得分:0)
在DockLayoutManager
您可以使用DockLayoutManager.DockItemDocking
活动。只需检查DockItemDockingEventArgs.DockType
属性即可。如果它不等于DockType.Left
或DockType.Right
,则将DockItemDockingEventArgs.Cancel
属性设置为false
。
这是一个例子:
private void DockLayoutManager_DockItemDocking(object sender, DockItemDockingEventArgs e)
{
e.Cancel = e.DockType != DockType.Left && e.DockType != DockType.Right;
}