Я хотел бы перенаправить событие IsMouseOver из одного элемента XAML одному из его братьев и сестер.
Я мог бы сделать это с помощью кода программной части, используя вызов RaiseEvent (...), но я бы не стал этого делать.
Можно ли привязать события IsMouseOver от одного брата к другому?
Например:
В приведенном ниже коде событие IsMouseOver для элемента BlueBorder изменяет границу с синего на зеленый.
Я бы хотел, чтобы BlueBorder также становился зеленым, когда указатель мыши находится над элементом RedBorder
(очевидно, я мог бы поместить триггер IsMouseOver в RedBorderStyle, но это не годится для моих реальных целей)
<Window.Resources>
<Style x:Key="BlueBorderStyle" TargetType="{x:Type Border}">
<Setter Property="Background" Value="Blue"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Green"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="False">
<Setter Property="Background" Value="Blue"/>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="RedBorderStyle" TargetType="{x:Type Border}">
<Setter Property="Background" Value="Red"/>
</Style>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border x:Name="BlueBorder" Grid.Column="0" Style="{StaticResource BlueBorderStyle}"/>
<Border x:Name="RedBorder" Grid.Row="1" Style="{StaticResource RedBorderStyle}"/>
</Grid>
(Or maybe I'm just approaching this in the wrong way?)
Вкратце:
У меня есть UserControl с заголовком вверху и ScrollView внизу. ScrollView написан таким образом, что когда курсор мыши находится над ScrollView, полосы прокрутки видны, а когда мышь уходит, полосы прокрутки исчезают. К сожалению, полосы прокрутки также исчезают, когда мышь переходит к заголовку, что мне не подходит.
Я мог бы охватить ScrollView, чтобы включить заголовок, но тогда область просмотра ScrollView также включает заголовок, и это тоже неправильно.
Есть предложения?