Установить курсор при наведении курсора на гиперссылку в WPF Richt-TextBox - PullRequest
0 голосов
/ 09 мая 2018

У меня есть Rich-Text-Box из Xtended WPF Toolkit для отображения текста, привязанного к некоторым файлам .rtf. Я хотел бы иметь поле «ReadOnly», но в то же время я хочу, чтобы гиперссылки в файлах были активными и кликабельными для пользователя. Для этого у меня есть коробка, созданная так:

<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>

Почти все работает нормально, и я могу нажимать на ссылки в Rich-Text-Box, однако, когда указатель мыши находится над ссылкой, курсор превращается в курсор «Выбор текста» (такой же, как при наведении курсора на поле ввода текста здесь) и это выглядит глупо. Так что похоже эта строка

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

игнорируется. Есть ли способ это исправить?

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Попробуйте добавить IsMouseOver триггер к Style, который устанавливает для свойства IsEnabled значение false:

<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>
0 голосов
/ 09 мая 2018

Вы должны попытаться использовать это свойство

ForceCursor="true"

на вашем RichTextBox

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...