我正在开发桌面应用程序。它有一个dropdown menu
。当dropdown
上的菜单项被点击时,如果之前未打开,则会打开新的tab
。单个tab
只有一个dropdown menu item
。我想要做的是打开一个window
,page
或user control
(我不确定我应该使用哪个)在单独的tab
中考虑他们将要做的工作做。
我的部分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
单独打开的内容中。< / p>
答案 0 :(得分:0)
好吧,这很简单:
layoutPanel.Content = new UserControl1();
我还有一个动态创建所需标签的技巧:
layoutPanel.Content = Activator.CreateInstance(Type.GetType(Constants.s_tabs[caption]));
我希望它不会导致任何性能问题。