如何在给定的窗口区域中切换用户控件

时间:2010-11-04 17:49:10

标签: wpf

我正在尝试编写一个应用程序,其中应用程序窗口的左侧是树状菜单,右侧是用户控件,具体取决于菜单选择。

我在右侧绘制了一个边框,当用户在菜单中选择一个项目时,我将边框的Child属性设置为与该菜单项对应的用户控件,如下所示:

Foo foo = new Foo(); // is a UserControl descendant
Bar bar = new Bar(); 

private void Foo_Selected(object sender, RoutedEventArgs e)
{
    RightSideBorder.Child = foo;
}
private void Bar_Selected(object sender, RoutedEventArgs e)
{
    RightSideBorder.Child = bar;
}

问题是,无论何时选择bar并选择foobar都会获得Unloaded事件(反之亦然)。

我想要做的是保持foo和bar加载,并根据菜单选择在它们之间切换。我怎么能做到这一点?更改Border.Child属性显然是这样做的错误方法。

1 个答案:

答案 0 :(得分:3)

将所有控件放在单个单元格网格中,并仅将其“可见性”属性更改为“折叠/可见”。