我使用以下TextBox样式。如果我继续在TextBox中输入,如果文本变得太长,它将不会滚动到插入符号。而且我也无法拖动滚动文本。我错过了什么吗?
<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>
答案 0 :(得分:0)
这一位:<Setter Property="TextWrapping" Value="Wrap"/>
说:当你到达它时,让这个文本框滚动到下一行。
这一位:<Setter Property="MaxLines" Value="1"/>
说:我希望它最多有一行。
删除第一个,将导致新文本将旧文本推到左侧(您可以通过按下左键足够的时间到达它。)
删除第二个文件会导致新文本推送旧文本(您可以通过按向上键来访问它)。
你想要达到什么目标?
答案 1 :(得分:0)
在这种情况下,ScrollViewer的内容是文本,因此如果您希望文本导致滚动,请在ScrollViewer上设置CanContentScroll属性...
<ScrollViewer Grid.Column="1" Margin="{TemplateBinding Padding}" x:Name="PART_ContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" CanContentScroll="True" />