Wpf 当文本过长时,自定义模板文本框不会滚动到新字符
我使用以下文本框样式。如果我一直在文本框中输入,如果文本变得太长,它将不会滚动到插入符号。而且我也不能拖动来滚动文本。我错过什么了吗Wpf 当文本过长时,自定义模板文本框不会滚动到新字符,wpf,xaml,Wpf,Xaml,我使用以下文本框样式。如果我一直在文本框中输入,如果文本变得太长,它将不会滚动到插入符号。而且我也不能拖动来滚动文本。我错过什么了吗 <Style x:Key="TextBoxStyle" TargetType="{x:Type TextBox}"> <Setter Property="Foreground" Value="White"/> <Setter Property="Background" Value="{StaticResource Te
<Style x:Key="TextBoxStyle" TargetType="{x:Type TextBox}">
<Setter Property="Foreground" Value="White"/>
<Setter Property="Background" Value="{StaticResource TextBoxBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource TextBoxBorderBrush}"/>
<Setter Property="BorderThickness" Value="2"/>
<Setter Property="FontSize" Value="26"/>
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="MaxLines" Value="1"/>
<Setter Property="Padding" Value="5"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Height" Value="50"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<Grid>
<Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}" CornerRadius="2" SnapsToDevicePixels="true">
<Border.Effect>
<DropShadowEffect Direction="-90" ShadowDepth="2"/>
</Border.Effect>
</Border>
<Border BorderBrush="{TemplateBinding BorderBrush}" x:Name="GlowBd" BorderThickness="2" CornerRadius="2" SnapsToDevicePixels="true">
<Border.Effect>
<DropShadowEffect Direction="360" BlurRadius="6" ShadowDepth="0"/>
</Border.Effect>
</Border>
<Grid Margin="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ContentControl Content="{TemplateBinding Tag}"/>
<ScrollViewer Grid.Column="1" Margin="{TemplateBinding Padding}" x:Name="PART_ContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Grid>
</Grid>
<!-- Some triggers -->
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
此位:
表示:当您到达此文本框时,让其滚动到下一行
此位:
表示:我希望它最多有一行
删除第一个,将导致新文本向左推旧文本(您可以通过按左键足够的次数来达到)
删除第二个,将导致新文本向上推旧文本(您可以通过按向上键来访问它)
您想实现什么?在本例中,ScrollViewer的内容是文本,因此如果您希望文本导致滚动,请在ScrollViewer上设置CanContentScroll属性
<ScrollViewer Grid.Column="1" Margin="{TemplateBinding Padding}" x:Name="PART_ContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" CanContentScroll="True" />
您是否能够通过其他方式(滚动条、滚轮等)到达字符串末尾?