2011-05-26 67 views
1

我怎樣才能錨定一個combox盒子,以便當我拖動分離器時它會自動調整大小。WPF combobox大小上的拖動GridSplitter

我嘗試使用堆棧面板無濟於事,甚至設置Horizo​​ntalAlignment和Horizo​​ntalContentAlignment伸展;這是行不通的。

我需要組合框與部分拖動一樣寬。在非wpf中,您只是錨定了組合,在wpf中該選項不可用。

<StackPanel Orientation="Horizontal"> 
    <Label Content="View By" 
      Padding="5" 
      Height="30" /> 
    <ComboBox Name="ddSelector" 
      Height="25" 
      Width="auto" 
      HorizontalAlignment="Stretch" 
      VerticalAlignment="Stretch" 
      HorizontalContentAlignment="Stretch" 
      Margin="16,0,0,0" /> 
</StackPanel> 

堆棧面板是在0行和電網分離器是在第1行

<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="275"></ColumnDefinition> 
    <ColumnDefinition Width="auto"></ColumnDefinition> 
    <ColumnDefinition Width="350"></ColumnDefinition> 
    <ColumnDefinition Width="auto"></ColumnDefinition> 
    <ColumnDefinition Width="*"></ColumnDefinition> 
</Grid.ColumnDefinitions> 

<GridSplitter Width="5" 
    Margin="0,36,0,5" 
    BorderThickness="4" 
    BorderBrush="Transparent" 
    Grid.Column="1" 
    HorizontalContentAlignment="Center" 
    HorizontalAlignment="Center" 
    ResizeBehavior="PreviousAndNext"></GridSplitter> 
+0

哪裏GridSplitter在什麼位置?網格中的第1行上的 – Adrian 2011-05-26 20:45:02

+0

。第0行是上面的代碼。 – nitefrog 2011-05-26 20:47:59

回答

4

使用Grid代替一個StackPanel的。這會做。

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 

    <Label ../> 
    <ComboBox Grid.Column="1" HorizontalAlignment="Stretch" .../> 

</Grid> 
+0

你只是將網格設置爲兩列?謝謝... – nitefrog 2011-05-26 20:46:25

+0

@nitefrog:是的,第一個是自動或固定寬度的標籤,第二個是*。 – HCL 2011-05-26 20:48:37

+0

非常感謝!工作完美... – nitefrog 2011-05-26 21:16:14

2

事情是這樣的:

<Window x:Class="WpfApplication2.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"> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto" /> 
      <RowDefinition Height="Auto" /> 
      <RowDefinition Height="*" /> 
     </Grid.RowDefinitions> 
     <Label Grid.Row="0">Some stuff here</Label> 
     <GridSplitter 
      ResizeDirection="Rows" 
      Grid.Row="1" 
      Height="3" 
      HorizontalAlignment="Stretch" /> 
     <Grid Grid.Row="2"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="Auto" /> 
       <ColumnDefinition Width="*" /> 
      </Grid.ColumnDefinitions> 
      <Label Content="View By" 
      Padding="5" 
      Height="30" /> 
      <ComboBox Name="ddSelector" Grid.Column="1" 
      HorizontalAlignment="Stretch" 
      VerticalAlignment="Stretch" 
      HorizontalContentAlignment="Stretch" 
      Margin="16,0,0,0" /> 
     </Grid> 
    </Grid> 
</Window> 
+0

感謝您的迴應! – nitefrog 2011-05-26 21:19:59