2015-09-28 84 views
-1

是否可以在不明確設置高度的情況下滾動(多行)TextBox?這裏是我的示例代碼片段:使用滾動條動態調整TextBox的大小

<Grid Grid.Row="6" 
     Grid.Column="2" 
     Grid.ColumnSpan="2"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"></RowDefinition> 
     <RowDefinition></RowDefinition> 
    </Grid.RowDefinitions> 
    <Label Grid.Row="0">Heading</Label> 
    <TextBox Grid.Row="1" 
      SpellCheck.IsEnabled="True" 
      TextWrapping="Wrap" 
      AcceptsReturn="True" 
      VerticalScrollBarVisibility="Auto"></TextBox> 
</Grid> 

這裏的問題是,該文本框將調整自身根據用戶多少行進入,而不訴諸而不是停留在相同的大小和滾動。

+0

或許使用行數/行數? – Ben

+0

@Ben設置最大/最小線不會幫助,因爲它不支持動態調整大小。 – Anthony

+0

我的意思是如果有一種方法來計算文本的行數,而不是文本框的屬性。 – Ben

回答

0

只需添加VerticalAlignment="Top"

<Grid Grid.Row="6" 
    Grid.Column="2" 
    Grid.ColumnSpan="2"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"></RowDefinition> 
     <RowDefinition></RowDefinition> 
    </Grid.RowDefinitions> 
    <Label Grid.Row="0">Heading</Label> 
    <TextBox 
     VerticalAlignment="Top" 
     Grid.Row="1" 
     SpellCheck.IsEnabled="True" 
     TextWrapping="Wrap" 
     AcceptsReturn="True" 
     VerticalScrollBarVisibility="Auto"></TextBox> 
</Grid> 
0

這將讓你開始。由於您沒有明確說明您的要求,因此很難找到適當的解決方案。如果你提出更明確的要求,我可以爲你製作更好的版本。

<Window ...> 
    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="476*"/> 
      <ColumnDefinition Width="45*"/> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="8*"/> 
      <RowDefinition/> 
     </Grid.RowDefinitions> 
     <TextBox x:Name="textBox" HorizontalAlignment="Left" Width="{Binding Value, ElementName=HorizontalSB}" Height="{Binding Value, ElementName=VerticalSB}" Margin="30,37,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" /> 
     <ScrollBar x:Name="VerticalSB" Grid.Column="1" HorizontalAlignment="Center" Width="Auto" SmallChange="1" Minimum="50" Value="25" MaxHeight="250" Maximum="1000"/> 
     <ScrollBar x:Name="HorizontalSB" Grid.Row="1" VerticalAlignment="Top" Width="Auto" Orientation="Horizontal" VerticalContentAlignment="Center" SmallChange="10" Maximum="1000" Minimum="20" LargeChange="10" Value="75"/> 

    </Grid> 
</Window>