【发布时间】:2018-05-01 09:35:24
【问题描述】:
我在主窗口上创建了一个堆栈面板,其中一个停靠面板用于保存菜单和菜单项。在同一个堆栈面板中,我有 3 个用户控件。当用户单击菜单项时,我只需要显示这 3 个用户控件中的一个,但我隐藏的用户控件在未显示时仍会占用空间。
在菜单和底部可见的用户控件之间,还有另一个隐藏的用户控件占用空间。
有问题的堆栈面板:
<StackPanel>
<DockPanel>
<Menu DockPanel.Dock="Top">
<MenuItem Header="Equipment">
<MenuItem Header="_List" Click="mnuEquipList_Click" />
<MenuItem Header="_Create" Click="mnuEquipCreate_Click" />
<MenuItem Header="_Update" Click="mnuEquipUpdate_Click" />
</MenuItem>
<MenuItem Header="_Exit" Click="mnuExit_Click" />
</Menu>
</DockPanel>
<equipment:EquipmentCreateView Visibility="Hidden" x:Name="equipCreateView"></equipment:EquipmentCreateView>
<equipment:EquipmentListView DataContext="{Binding EquipmentListViewModel}" Visibility="Hidden" x:Name="equipListView"></equipment:EquipmentListView>
<equipment:EquipmentUpdateView Visibility="Hidden" x:Name="equipUpdateView"></equipment:EquipmentUpdateView>
</StackPanel>
当用户单击菜单项时,Visibility 属性设置为 true,其他属性设置为 false。还有其他方法可以实现此功能吗?
【问题讨论】:
-
使用
Collapsed而不是Hidden
标签: c# wpf xaml stackpanel