2016-05-13 90 views
1

我想讓底部文本框填充整個表單。這是迄今爲止我所擁有的,顯然,它們相當卡住了。有任何想法嗎?在dockpanel控件中填寫文本框/ w stackpanel - WPF

<DockPanel LastChildFill="True"> 
      <StackPanel Orientation="Vertical"> 
       <Grid HorizontalAlignment="Stretch"> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="*"/> 
         <ColumnDefinition Width="auto"/> 
         <ColumnDefinition Width="auto"/> 
        </Grid.ColumnDefinitions> 
        <Grid.RowDefinitions> 
        <RowDefinition Height="*"/> 
        <RowDefinition Height="Auto"/> 
        </Grid.RowDefinitions> 
        <TextBox Name="Textbox1" Controls:TextBoxHelper.ClearTextButton="True" 
        Controls:TextBoxHelper.Watermark=".Zip file location" 
        IsReadOnly="False" Grid.Column="0" Grid.Row="0"/> 
        <Button Name="openbtn" Content="Open" Width="75" Click="openbtn_click" Grid.Column="1" Grid.Row="0"/> 
        <Button Name="startbtn" Content="Start" Width="75" Click="startbtn_click" Grid.Column="2" Grid.Row="0"/> 
       </Grid> 
       <TextBox x:Name="logs"/> 
      </StackPanel> 
     </DockPanel> 

Picture of issue

回答

1

,因爲它的高度是其包含的項目的總heigth(當時最後一個項目不能填補剩餘外太空)你不需要堆疊面板。

所以我建議你使用網格來完成你想要的行爲:

<Grid HorizontalAlignment="Stretch"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*"/> 
     <ColumnDefinition Width="auto"/> 
     <ColumnDefinition Width="auto"/> 
    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="20"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <TextBox Name="Textbox1" 
       IsReadOnly="False" Grid.Column="0" Grid.Row="0"/> 
    <Button Name="openbtn" Content="Open" Width="75" Click="openbtn_click" Grid.Column="1" Grid.Row="0"/> 
    <Button Name="startbtn" Content="Start" Width="75" Click="startbtn_click" Grid.Column="2" Grid.Row="0"/> 
    <TextBox x:Name="logs" Grid.Row="1" Grid.ColumnSpan="3"/> 
</Grid> 

希望它可以幫助

+0

我不得不改變該行的定義,因爲它是把文本框下略有第二個,但它的工作。謝謝:) ' ' – TonyW

+0

太棒了!不客氣 :) – RobertoB