簡単なマウスオーバーとの比較でドラッグされたことに対応して、Border
のスタイルをTrigger
で行いたいです。ドラッグイベント中であるかどうかに基づいてトリガーを設定できますか?
具体的には、ハードウェアポート(ポート1、ポート2など)を表示し、そのポートに接続されているデバイスのリストが表示されます。通常のマウスオーバーイベントでは、デバイスを強調表示する必要があります。ただし、ドラッグ・ドロップ操作を行っている場合は、ポートを強調表示する必要があります。
たとえば、私が何をしたいのかを説明するいくつかの偽のMultiTriggersがあります。これはIsDragInProgress
というfauxプロパティを使用しています。それが私が達成しようとしていることです。
<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
?
OnEnterを試しましたか? – Xcalibur37
私はOnEnterがあなたがドラッグしているかどうかに関係なく、いずれかの方法で起動したとは思わない。プラス、それはイベントではなく、プロパティではありますか?もう一度、ドラッグしているかどうかをテストできるものを探しています。 – MarqueIV