У меня есть пользовательский элемент управления в WPF, в котором я определяю большой шаблон ItemsControl.
Там у меня есть Сетка, и в одном столбце этой сетки я получил TextBlock, а в другом столбце у меня есть Граница.
Я хочу выделить Границу, когда мышь входит в TextBlock.
Я пробовал несколько сценариев:
сначала EventTrigger
в стиле TextBlock, но я узнал, что вы не можете этого сделать, затем EventTrigger в разделе Triggers TextBlock, и теперь я просто помещаю его в DataTemplate.Triggers моего ItemsControl, но я продолжаю получать ошибка:
"Cannot resolve all property references in the property path 'Border.BorderBrush.Color'. Verify that applicable objects support the properties."
Вот код, который вызывает проблемы:
<DataTemplate.Triggers>
<EventTrigger SourceName="mytxtblock" RoutedEvent="TextBlock.MouseEnter">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetName="myborder"
Storyboard.TargetProperty="Border.BorderBrush.Color"
Duration="0:0:1"
To="White" />
<ThicknessAnimation Storyboard.TargetProperty="Border.BorderThickness"
Duration="0:0:1"
From="0"
To="1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</DataTemplate.Triggers>
Мне кажется, я что-то упускаю из-за того, как я ссылаюсь на свойство Color моей Границы, какая-то идея?
Спасибо!
РЕДАКТИРОВАТЬ : Я понял, что объявление SolidColorBrush
в Resources
и последующее использование этого значения позволяет мне избавиться от
Storyboard.TargetProperty="Border.BorderBrush.Color"
, который меняется на Storyboard.TargetProperty="Border.BorderBrush"
,
но теперь компилятор сообщает мне, что объявленный мной цвет (я пробовал зеленый и прозрачный) не является допустимым значением для "To" ...