工具栏中按钮的自动对齐

时间:2013-09-02 09:22:00

标签: c# .net wpf

有没有办法让工具栏(库存/自定义)将所有按钮对齐到一边,比如左边?

工具栏上有3个按钮,abc。如果我动态隐藏b,则ac之间存在明显差距。如何让工具栏自动同时关闭ac之间的差距,但在b再次可见时恢复订单?

谢谢!

信息

到目前为止,我已尝试过<Toolbar /><Stackpanel /><DockPanel />,但他们没有对齐按钮。

2 个答案:

答案 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;
}