wpf - 当文本不再适合一行时,如何配置 TextBox 控件以自动垂直调整自身大小?

标签 wpf textbox autosize

如何配置 TextBox当文本不再适合一行时,控件自动垂直调整大小?

例如,在以下 XAML 中:

<DockPanel LastChildFill="True" Margin="0,0,0,0">
  <Border Name="dataGridHeader" 
    DataContext="{Binding Descriptor.Filter}"
    DockPanel.Dock="Top"                         
    BorderThickness="1"
    Style="{StaticResource ChamelionBorder}">
  <Border
    Padding="5"
    BorderThickness="1,1,0,0"                            
    BorderBrush="{DynamicResource {ComponentResourceKey TypeInTargetAssembly=dc:NavigationPane, 
    ResourceId={x:Static dc:NavigationPaneColors.NavPaneTitleBorder}}}">
    <StackPanel Orientation="Horizontal">
      <TextBlock                                
        Name="DataGridTitle"                                                                                                
        FontSize="14"
        FontWeight="Bold"                                    
        Foreground="{DynamicResource {ComponentResourceKey 
        TypeInTargetAssembly=dc:NavigationPane, 
        ResourceId={x:Static dc:NavigationPaneColors.NavPaneTitleForeground}}}"/>
      <StackPanel Margin="5,0"  Orientation="Horizontal" 
              Visibility="{Binding IsFilterEnabled, FallbackValue=Collapsed, Mode=OneWay, Converter={StaticResource BooleanToVisibility}}"
              IsEnabled="{Binding IsFilterEnabled, FallbackValue=false}"  >                                    
          <TextBlock  />                                                                
          <TextBox    
            Name="VerticallyExpandMe"
            Padding="0, 0, 0, 0"  
            Margin="10,2,10,-1"                                                                                                                                                                                                                     
            AcceptsReturn="True"
            VerticalAlignment="Center"                                    
            Text="{Binding QueryString}"
            Foreground="{DynamicResource {ComponentResourceKey 
            TypeInTargetAssembly=dc:NavigationPane, 
            ResourceId={x:Static dc:NavigationPaneColors.NavPaneTitleForeground}}}">
          </TextBox>
        </StackPanel>                               
    </StackPanel>
  </Border>              
  </Border>
</DockPanel>
TextBox当绑定(bind)到它的文本不适合一行时,名为“VerticallyExpandMe”的控件需要自动垂直扩展。与 AcceptsReturn设置为真,TextBox如果我在其中按回车键,它会垂直扩展,但我希望它自动执行此操作。

最佳答案

或者,您可以限制您的 TextBlockWidth通过将其绑定(bind)到 parent 的ActualWidth , 例如:

<TextBlock Width="{Binding ElementName=*ParentElement*, Path=ActualWidth}" 
           Height="Auto" />

这也将迫使它自动调整其高度。

关于wpf - 当文本不再适合一行时,如何配置 TextBox 控件以自动垂直调整自身大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5275249/

相关文章:

android - Android 自动调整 TextView 的动态省略号支持

c# - ListView 列宽自动

wpf - 如何删除 ButtonChrome 边框(定义边框模板时)?

C# WinForm 按下 Tab 键,它到处跳转

c# - 显示选定的组合框项目显示名称

javascript - 我无法根据选择框选择添加不同的元素

C#:如何使在文本框中按下 enter 触发按钮,但仍然允许诸如 "Ctrl+A"之类的快捷方式通过?

jquery-plugins - Fancybox包装器无法正确调整图像尺寸

c# - Grid Splitter 在对角线上工作?

c# - 为什么TextBox Border Color在WPF中坚持不变?