Как изменить цвет фона TextBlock в UWP, когда курсор мыши находится над ним? - PullRequest
0 голосов
/ 03 марта 2019

Я пытаюсь предоставить отзыв, когда пользователь наводит курсор мыши на TextBlock в моем приложении UWP.

Все, что я хочу сделать, это изменить цвет фона при наведении, однако я не вижукак это возможно.

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Вы не можете применить фон непосредственно к TextBlock, так как у него нет свойства BackGround, вместо этого вы можете поместить его в Grid или Border.Используя PointerEntered и PointerExited события Grid, вы можете изменить цвет фона TextBlock

<Grid VerticalAlignment="Center" HorizontalAlignment="Left" PointerEntered="Grid_PointerEntered" PointerExited="Grid_PointerExited">
  <TextBlock  Text="Hello"></TextBlock>
</Grid>

private void Grid_PointerEntered(object sender, PointerRoutedEventArgs e)
{
 (sender as Grid).Background = new SolidColorBrush(Colors.Green);
}

private void Grid_PointerExited(object sender, PointerRoutedEventArgs e)
{
 (sender as Grid).Background = new SolidColorBrush(Colors.White);
}

Перед началом Ponter Over

enter image description here

При указателе более

enter image description here

0 голосов
/ 03 марта 2019

Здесь вы можете найти код шаблона для TextBox: https://msdn.microsoft.com/en-us/library/windows/apps/mt299154.aspx?f=255&MSPPError=-2147217396

Соответствующий код, который определяет поведение, которое вы хотите изменить, должен быть помещен после этой строки:

<VisualState x:Name="PointerOver">

В основном вам нужно использовать StoryBoard, чтобы установить цвет элемента, используемого для рендеринга фона на что-то другое.

...