有没有办法让工具栏(库存/自定义)将所有按钮对齐到一边,比如左边?
工具栏上有3个按钮,a
,b
,c
。如果我动态隐藏b
,则a
和c
之间存在明显差距。如何让工具栏自动同时关闭a
和c
之间的差距,但在b
再次可见时恢复订单?
谢谢!
到目前为止,我已尝试过<Toolbar />
,<Stackpanel />
,<DockPanel />
,但他们没有对齐按钮。
答案 0 :(得分:3)
您需要制作b Collapsed
而不是Hidden
请参阅MSDN UIElement.Visibility Property:
在WPF模型中,Hidden表示对象的可见性状态 不应渲染,但仍应占用WPF布局中的空间。
更具体的是,正如@Nayan指出的那样,可以参考Visibility Enumeration
:
- 折叠不显示元素,也不要在布局中为其预留空间。
- 隐藏不显示元素,但为布局中的元素保留空间。
- 可见显示元素。
PS :这就是BooleanToVisibilityConverter
:
当传入true时,Convert方法返回Visibility.Visible;传入false时返回Visibility.Collapsed。
答案 1 :(得分:1)
使用StackPanel
:
<StackPanel Orientation="Horizontal">
<Button Width="100" Click="Button_Click" />
<Button Width="100" Click="Button_Click" />
<Button Width="100" Click="Button_Click" />
<Button Width="100" Click="Button_Click" />
</StackPanel>
private void Button_Click(object sender, RoutedEventArgs e)
{
((Button)sender).Visibility = Visibility.Collapsed;
}