0
有DockPanel中與以水平的方式並排放置三個子控件調整大小的控制: 1)樹視圖 2)的RichTextBox 3)網格如何在運行時在WPF
的RichTextBox在於樹視圖的中間和格。我將RichTextBox作爲DockPanel的最後一個孩子,並將LastChildFill屬性設置爲True。現在,因爲可以在運行時關閉Grid,所以我希望RichTextBox佔用Grid關閉後變空的所有空間。但是,如果再次顯示網格,則RichTextBox應該從右側收縮以允許網格適合。如何實現此目的?我是WPF的新手。另外,如何隱藏網格?這是XAML。
<DockPanel Grid.Row="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" LastChildFill="True">
<Border BorderThickness="1" DockPanel.Dock="Left" Height="Auto" HorizontalAlignment="Stretch" Margin="1" VerticalAlignment="Stretch" Width="Auto" CornerRadius="0" BorderBrush="#FF646464">
<TreeView Name="TV" Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</Border>
<Border Name="Notification_Pane" BorderThickness="1" DockPanel.Dock="Right" Height="Auto" HorizontalAlignment="Stretch" Margin="1" VerticalAlignment="Stretch" Width="Auto" CornerRadius="0" BorderBrush="#FF646464">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label Content="Notification" Margin="0" HorizontalAlignment="Stretch" VerticalAlignment="Top" Background="LemonChiffon" Grid.Row="0" Grid.Column="0"/>
<Button Name="btn_Close" Content="X" Margin="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="LemonChiffon" Height="Auto" Width="Auto" Grid.Row="0" Grid.Column="1" Padding="10,0,10,0" BorderThickness="0" Cursor="Hand" Focusable="True" IsHitTestVisible="True" ClickMode="Release" Click="Button_Click" />
<ScrollViewer Height="Auto" Name="ScrollViewer" Width="Auto" Margin="0" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2">
<StackPanel CanVerticallyScroll="True" Height="Auto" Name="Notification_Panel" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
</StackPanel>
</ScrollViewer>
</Grid>
</Border>
<Border BorderThickness="1" Height="Auto" HorizontalAlignment="Stretch" Margin="1" VerticalAlignment="Stretch" Width="Auto" CornerRadius="0" BorderBrush="#FF646464">
<RichTextBox Name="rtb" Height="Auto" Width="Auto" Grid.Row="2" HorizontalAlignment="Stretch" Grid.Column="1" Margin="0" />
</Border>
</DockPanel>
謝謝。這真的很有幫助。 'System.Windows.Visibility.Collapsed'是我錯過的東西。你能解釋一下這個Visibilty.Collapsed如何工作。我的理解是,Visibility.Hidden隱藏了用戶的控制權,即對用戶不可見,但實際上它在那裏。這是真的? – Prasoon
@Prasoon是的,這是真的。 '** System.Windows.Visibility.Visible **:顯示元素.' ** ** System.Windows.Visibility.Collapsed **:不顯示元素,也不在佈局中保留空間.' '** System.Windows.Visibility.Hidden **:不顯示元素,但爲佈局中的元素保留空間。' 您可以在這裏找到更多[Here](http://msdn.microsoft.com/ en-us/library/system.windows.visibility(v = vs.110).aspx)和[Here](http://msdn.microsoft.com/en-us/library/system.windows.uielement.visibility( v = vs.110).aspx) – GeorgeChond
@Prasoon如果能幫助你,你可以將我的答案設置爲答案嗎? – GeorgeChond