在Wpf中动态加载LayoutPanel内容
问题描述:
我正在处理桌面应用程序。它有一个dropdown menu
。当在dropdown
上单击菜单项时,如果以前未打开,则会打开一个新的tab
。单个dropdown menu item
有单个tab
。我想要做的是打开一个window
,page
或user control
(我不确定我应该使用哪个),在考虑他们将要完成的工作时单独使用tab
。在Wpf中动态加载LayoutPanel内容
我的部分XAML
:
<dxd:DockLayoutManager DockItemClosing="DockLayoutManager_DockItemClosing_1">
<dxd:LayoutGroup>
<dxd:TabbedGroup Name="tabbedGroup">
</dxd:TabbedGroup>
</dxd:LayoutGroup>
</dxd:DockLayoutManager>
和部分CS
:
private void addPanel(string caption)
{
var contains = false;
var layoutPanel = new LayoutPanel() { Caption = caption };
BaseLayoutItem[] baseLayoutItem = tabbedGroup.GetItems();
foreach (var layoutItem in baseLayoutItem)
{
if (layoutItem.Caption.Equals(layoutPanel.Caption))
{
contains = true;
}
}
if (!contains)
{
tabbedGroup.Add(layoutPanel);
}
}
正如我所说,我想追加一个window
,page
或user control
(我不知道我应该使用)分开打开每个LayouPanel
。
答
确定它是那么容易,因为:
layoutPanel.Content = new UserControl1();
,我得到了一个技巧用于动态创建所需的选项卡:
layoutPanel.Content = Activator.CreateInstance(Type.GetType(Constants.s_tabs[caption]));
我希望这不会造成任何性能问题。
该解决方案的缺点是什么? – gesus 2013-07-25 08:14:40