Ответ 1
Ваша проблема в том, что сама сетка не подвержена тестированию, потому что у нее нет фона. Вместо этого попробуйте:
<Grid Background="Transparent">
WPF Grid имеет свойство IsMouseOver, которое вы можете использовать в триггерах стиля Grid.
Моя проблема заключается в том, что свойство IsMouseOver изменяется только в том случае, если мышь находится над некоторым управлением (например, Button или ComboBox) внутри самой Grid.
Например:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="25" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Button Grid.Column="1">A Button</Button>
<Grid.Style>
<Style TargetType="{x:Type Grid}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="False">
<Setter Property="Opacity" Value="0.5"></Setter>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Opacity" Value="1"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</Grid.Style>
</Grid>
Вышеуказанная Сетка и ее содержимое будут отображаться с половинной непрозрачностью, чтобы вы могли видеть элементы управления.
Вы заметите, что непрозрачность не будет полностью заполнена, если вы наведите курсор на первый столбец (который ничего не содержит).
Однако непрозрачность будет заполнена, если вы наведете курсор на кнопку во втором столбце.
В моем приложении сетка, для которой я устанавливаю триггеры, отображается поверх элемента управления изображением. Я не хочу, чтобы Grid отображалась до тех пор, пока мышь не вибрирует над изображением... Другими словами, поскольку сетка находится поверх изображения, я не хочу, чтобы сетка отображалась до тех пор, пока мышь не нависла над Grid (в любом месте сетки), потому что сетка находится поверх изображения.
Кто-нибудь знает, как это сделать?
Спасибо!
-Frinny
Ваша проблема в том, что сама сетка не подвержена тестированию, потому что у нее нет фона. Вместо этого попробуйте:
<Grid Background="Transparent">
установите прозрачный фон сетки, затем он должен работать
для получения более подробной информации, почему это так, пожалуйста, смотрите здесь