У меня есть страница XAML UWP, которая определяет GridView. Отдельные элементы GridView являются сеткой. Примерно так:
<GridView Name="TheGridView" ItemsSource="{x:Bind stuff}">
<GridView.ItemTemplate>
<DataTemplate x:DataType="more stuff">
<Grid Background="{StaticResource TheBlackColor}">
...stuff here...
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
Я хотел бы изменить цвет фона сетки для элемента, когда на него наводит курсор мыши (от TheBlackColor к чему-то еще). Я знаю, что могу поместить события PointerEntered и PointerExited в Grid, а затем в своем коде я могу установить свойство background, но это похоже на то, для чего предназначен VisualStateManager.
Однако я не могу понять, как заставить VisualStateManager работать для этого. Если я определяю визуальные состояния в XAML, то я предполагаю, что я все равно буду подключаться к событиям PointerEntered и PointerExited в Grid, но в моем коде я бы вызвал GoToState для переключения состояний. Однако я не знаю, как сказать GoToState, какой элемент в дереве XAML должен изменить свое визуальное состояние. Я бы подумал, что просто передал бы элемент наведенной сетки первому параметру GoToState (он передается мне как «отправитель» в моем событии PointerEntered) - за исключением того, что я не могу, потому что первый параметр GoToState - это Control и Сетка не вытекает из контроля.