2012-08-01 80 views
13

在XAML中,如何才能使控件或顯示部分的大小調整成像Visual Studio中的工具箱,解決方案資源管理器或錯誤列表這樣的不同面板可以抓取和調整大小的方式?用戶可調整大小的WPF控件?

在這個製造的例子。 。 。

<Window x:Class="UI_Experiments_1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <DockPanel x:Name="Tab3DockPanel" Background="#FFA0FFA0" LastChildFill="True"> 
     <ScrollViewer DockPanel.Dock="Left" Background="Lavender"> 
      <TextBlock Height="60" TextWrapping="Wrap" Background="#FFFFDDDD" Width="140"> 
        ScrollViewer - DockPanel.Dock="Left" 
      </TextBlock> 
     </ScrollViewer> 
     <TextBlock DockPanel.Dock="Top" HorizontalAlignment="Center" 
       TextWrapping="Wrap" Background="LemonChiffon"> 
       DockPanel.Dock="Top" HorizontalAlignment="Center" 
     </TextBlock> 
     <ListBox DockPanel.Dock="Right" Background="#FFCCEEFF"> 
       ListBox DockPanel.Dock="Bottom" 
     </ListBox> 
    </DockPanel> 
</Window> 

。 。 。我有一個停靠在左邊的ScrollView的DockPanel,停靠在底部的ListBox和頂部的TextBlock。有沒有辦法將調整大小的句柄附加到這些以達到相同的效果,還是有一些其他控件可以嵌入?正如我所說的,以上只是一個虛構的例子 - 我不在乎是否使用了這些精確的控件。

我找到了一個在MSDN上使用Adorner添加調整大小手柄的示例,但它涉及了超過170行的C#代碼,因此在採用之前我想確保在XAML中沒有實現這一點的內在方法。

在此先感謝。

回答

11

不是你問的具體控制,但一個樣品的例子。需要一個分離器以及兩側的內容*和包含的控制範圍。

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="auto" /> 
     <ColumnDefinition Width="*" />  
    </Grid.ColumnDefinitions> 
    <TextBox Grid.Row="0" Grid.Column="0" 
      HorizontalAlignment="Stretch" 
      VerticalAlignment="Stretch" 
      Text="TexBox" />  
    <GridSplitter Grid.Row="0" Grid.Column="1" Margin="2,0,2,0" 
        Width="3" Background="Purple" 
        VerticalAlignment="Stretch" 
        HorizontalAlignment="Center" /> 
    <ListView Grid.Row="0" Grid.Column="2" Background="Aqua" 
       HorizontalAlignment="Stretch" 
       VerticalAlignment="Stretch"/> 
</Grid> 
+0

爲什麼要將第二個'ColumnDefinition'的寬度設置爲auto?這導致'GridSplitter'自身可以調整大小。 – DdW 2016-08-01 08:54:37

+0

@DdW真的嗎?你測試過了嗎? – Paparazzi 2016-08-01 09:20:38

+1

是...與其他兩個'*'結合使用時,它保持其他兩個大小相同,同時調整'GridSplitter'的大小。我的建議是:保持寬度固定(3或5像素左右)在'GridSplitter'和'ColumnDefinition' – DdW 2016-08-01 09:23:12