我正在尝试对齐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。
谢谢!
答案 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}