当鼠标悬停在 WPF Richt-TextBox 中的超链接上时设置光标



我有一个来自XtendedWPF Toolkit的富文本框,用于显示绑定到某些.rtf文件的文本。我想要"只读"框,但同时我希望文件中的超链接对用户有效且可点击。为了实现这一点,我像这样创建了盒子:

<xctk:RichTextBox x:Name="richTextBox" Cursor="Arrow" VerticalAlignment="Stretch" Text="{Binding text}"  Focusable="False" IsDocumentEnabled="True">
<xctk:RichTextBox.Resources>
<Style TargetType="Hyperlink">
<Setter Property="Cursor" Value="Arrow" />
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="Hyperlink_MouseLeftButtonDown"/>
</Style>
</xctk:RichTextBox.Resources>
</xctk:RichTextBox>

几乎所有工作正常,我可以单击富文本框中的链接,但是当鼠标悬停在链接上时,光标会变成"文本选择"光标(就像您将鼠标悬停在此处的文本输入字段上一样(这看起来很愚蠢。所以似乎这条线

<Setter Property="Cursor" Value="Arrow" />

正在被忽略。有什么办法可以解决这个问题吗?

您应该尝试使用此属性

ForceCursor="true"

在您的富文本框上

尝试将IsMouseOver触发器添加到将IsEnabled属性设置为falseStyle

<Style TargetType="Hyperlink">
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="Hyperlink_MouseLeftButtonDown"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="IsEnabled" Value="False" />
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>

最新更新