Я хочу ввести Border
через Trigger
в ответ на перетаскивание по сравнению с простым наведением мыши.
Более конкретно, у нас есть список элементов, отображающий аппаратный порт (например,как порт 1, порт 2 и т. д.), а затем рядом с ним устройство, подключенное к этому порту.Для обычных событий при наведении курсора мы хотим выделить устройства.Однако, если мы находимся в операции перетаскивания, мы хотим выделить порт.
Например, вот несколько искусственных MultiTriggers, описывающих, что я хочу сделать.Он использует искусственное свойство с именем IsDragInProgress
, которое я составил для этого примера.Вот чего я пытаюсь достичь.
<DataTemplate x:Key="TestTemplate">
<DockPanel>
<Border x:Name="PortHighlight" DockPanel.Dock="Left">
<TextBlock>
<Run Text="{Binding PortName}" />
<Run Text=": " />
</TextBlock>
</Border>
<Border x:Name="DeviceHighlight">
<TextBlock Text="{Binding DeviceName}" />
</Border>
</DockPanel>
<DataTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True" />
<Condition Property="IsDragInProgress" Value="False" />
</MultiTrigger.Conditions>
<Setter TargetName="DeviceHighlight" Property="Background" Value="Yellow" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True" />
<Condition Property="IsDragInProgress" Value="True" />
</MultiTrigger.Conditions>
<Setter TargetName="PortHighlight" Property="Background" Value="Yellow" />
</MultiTrigger>
</DataTemplate.Triggers>
</DataTemplate>
Так можно ли это сделать?Есть ли какое-либо существующее свойство, которое я могу опрашивать вместо искусственного IsDragInProgress
?