2012-09-01 26 views
6

Tôi đã trải qua rất nhiều mã ví dụ cho điều này và cuối cùng quyết định hỏi: Tôi có một lưới có nút có vị trí cố định và một lưới khác bên trong nó. Lưới ngoài không có chiều rộng/chiều cao được đặt. Nó sẽ thay đổi theo độ phân giải màn hình. Tôi đặt W/H của cửa sổ như:Lấy hàng giữa của lưới để lấp đầy không gian sẵn có

Width = 200; 
Height = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - 5; 

Bên trong lưới nội tôi có 3 hàng, là thượng là một nút (chiều cao tự động), một trong những trung là một listview có chiều cao có thể thay đổi (và trong đó có để lấp đầy không gian có sẵn) và hàng cuối cùng bao gồm một hộp văn bản sẽ vẫn ở dưới cùng, của cửa sổ luôn. Các xaml cho rằng là dưới đây:

<Button Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" Click="Button_Click" Width="32" Height="32" FontSize="16" VerticalAlignment="Center" 
      HorizontalAlignment="Left" FontWeight="Bold" ToolTip="Click here to hide the Sidebar">&gt;</Button> 
<Grid VerticalAlignment="Top" Background="Transparent" Grid.Row="1"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto" /> 
      <!-- This is the settings bar--> 
      <RowDefinition Height="*" /> 
      <!-- This will contain the listbox--> 
      <RowDefinition Height="Auto" /> 
      <!-- This is to maintain vertical arrangement and future use--> 
     </Grid.RowDefinitions> 

     <Button Content="hello" Grid.Row="0" /> 
     <ListView x:Name="lstView" Background="Transparent" Grid.Row="1"/> 
     <TextBox TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" VerticalAlignment="Bottom" HorizontalAlignment="Stretch" Height="50" Margin="2" BorderBrush="Black" Grid.Row="2" />` 

Nhưng tôi chỉ không thể lấy hàng giữa để lấp đầy toàn bộ không gian và hộp văn bản liên kết ở dưới cùng của màn hình. Bất cứ ai có thể đề nghị làm thế nào để có được textbox liên kết đến phía dưới và hàng giữa để lấp đầy toàn bộ chiều cao còn lại và Làm thế nào tôi có thể thực hiện điều này mà không thiết lập một cách rõ ràng chiều cao trong khi thay đổi chế độ hiển thị?

+1

'RowDefinition' bạn sẽ thực sự làm cho hàng thứ hai chiếm hết không gian còn lại * trong' Lưới' * này. Bây giờ bạn cần phải nhìn vào cha mẹ của nó, và chắc chắn rằng cha mẹ đang cho phép 'Grid' này lấp đầy toàn bộ cửa sổ. Tôi thấy một 'Grid.Row' trên' Grid' của bạn, do đó, cha mẹ có lẽ là một 'Grid'; * 'RowDefinition' của nó trông như thế nào? –

+0

tôi không có thêm bất kỳ định nghĩa lưới trên lưới đó, tôi chỉ cần sử dụng nó để thêm một nút cố định ở trung tâm của cửa sổ .... không sử dụng khác ... – Dannyboy

Trả lời

0

Nếu bạn không thông báo cho Grid để có tất cả không gian có sẵn, nó không thể phân phối, bạn có thể đặt VerticalAlignment của Grid thành Stetch.

+0

hey .... tôi đã cố gắng mà trước nhưng nó đã làm không hoạt động, không có thay đổi trong giao diện người dùng ... – Dannyboy

Các vấn đề liên quan