2011-04-29 152 views
1

我想對齊dockpanel右側的按鈕,但我隱藏並顯示基於certian條件的按鈕。我需要根據所顯示的內容進行正確的證明。目前我使用此:WPF我如何對齊右側的按鈕與x個按鈕

<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。

謝謝!

回答

5

相反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上顯示,但它仍將佔用爲其保留的空間。

+0

謝謝,我仍然在學習更多關於WPF的知識。 – 2011-04-29 14:38:18

2

那麼你有什麼麻煩?我會用一個簡單的StackPanel做到這一點:

<StackPanel HorizontalAlignment="Right" Orientation="Horizontal"> 
    <Button>One</Button> 
    <Button Margin="3 0 0 0">Two</Button> 
</StackPanel> 
+0

嘿肯特,謝謝你的迴應。我遇到麻煩如果btnTwo是唯一顯示的那麼我需要用btnOne替換它,反之亦然。然後,如果兩者都顯示btnTwo應該有一個5px的右邊距。 – 2011-04-29 13:17:25