WPF如何将右侧的按钮与x个按钮对齐

时间:2011-04-29 12:39:09

标签: wpf

我正在尝试对齐dockpanel右侧的按钮,但我隐藏并根据certian标准显示按钮。我需要根据所显示的内容进行正确的辩护。目前我正在使用这个:

    <DockPanel HorizontalAlignment="Stretch" Height="34" Margin="0,0,2,35" VerticalAlignment="Bottom">
        <Button DockPanel.Dock="Right" Height="23" x:Name="btnOne" Click="btnOne_Click" Margin="0,0,5,5" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="Auto">
            <TextBlock x:Name="txtBtnOneText" />
        </Button>
        <Button DockPanel.Dock="Right" Height="23" Width="Auto" x:Name="btnTwo" Visibility="Hidden" Click="btnTwo_Click" HorizontalAlignment="Right" Margin="0,0,5,5" VerticalAlignment="Bottom">
            <TextBlock x:Name="txtBtnTwoText" />
        </Button>
    </DockPanel>

当我只显示按钮btnOne然后我希望它是正确的,当我只显示btnTwo然后我希望它是正确的,或者当我显示它们然后我想在最右边的btnOne和btnTwo在btnOne的左边是5px。

谢谢!

3 个答案:

答案 0 :(得分:4)

而不是使用dockpanel尝试使用这样的stackpanel -

        <StackPanel Grid.Row="0" Orientation="Horizontal">
            <Button x:Name="btn1" Content="btn1" Height="34" />
            <Button x:Name="btn2" Margin="5,0,0,0" Content="btn2" Height="34" />
        </StackPanel>

当您想要隐藏一个按钮时,只需将按钮的可见性设置为折叠而不是隐藏,并且不会占用为其保留的空间。然而,如果将可见性设置为隐藏,它将不会显示在UI上,但它仍将占用为其保留的空间。

答案 1 :(得分:3)

那你有什么麻烦?我会使用简单的StackPanel

来做到这一点
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal">
    <Button>One</Button>
    <Button Margin="3 0 0 0">Two</Button>
</StackPanel>

答案 2 :(得分:0)

对我来说,使用 Grids 而不是 StackPanel 效果更好

${N}