我有下面的文本框,它的行为作为一个文本块使用Sytle:
<Style x:Key="TextBlockStyle" TargetType="{x:Type TextBox}">
<Setter Property="Background" Value="{x:Null}" />
<Setter Property="BorderBrush" Value="{x:Null}" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Padding" Value="0" />
<Setter Property="IsReadOnly" Value="True" />
<Setter Property="IsTabStop" Value="False" />
<Setter Property="VerticalAlignment" Value="Stretch" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="TextWrapping" Value="Wrap" />
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="{x:Null}" />
</Trigger>
</Style.Triggers>
</Style>
<TextBox Grid.Column="1"
BorderBrush="DarkRed"
BorderThickness="1"
Style="{StaticResource TextBlockStyle}"
VerticalScrollBarVisibility="Auto"
x:Name="MyTextBox"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
Height="auto"
Margin="5"
Text="{Binding Path=Text}"
Foreground="{Binding Path=ForegroundColor}">
</TextBox>
这种方法的问题是可以选择TextBox内容,而我不希望这样,所以在Style中我添加了一个新属性,如下所示:
<Setter Property="IsHitTestVisible" Value="False" />
所以现在不能选择文本框内容。好吧,这正是我想要的,但是现在引入了一个新的副作用。现在当垂直滚动条可见时,它处于只读模式,我不能单击垂直滚动条的向上和向下按钮。当我单击它们时,单击被忽略,什么都没有发生....那么我怎么能做文本框内容不可选,同时使垂直滚动条工作时,我点击向上和向下按钮?
1条答案
按热度按时间zfycwa2u1#
尝试在文本框上设置ScrollViewer.VerticalScrollBarVisibility attached属性,而不是设置文本框的VerticalScrollBarVisibility。