22

いくつかの例から、この種のトリガーを組み合わせることが可能であることがわかりました。

<Trigger Property="IsMouseOver" Value="True">

この種のデータトリガーを使用すると:

<DataTrigger Binding="{Binding IsHighlightable}" Value="True" />

このようなMultiDataTriggerを使用することにより:

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsMouseOver}" Value="True"/>
        <Condition Binding="{Binding IsHighlightable}" Value="True" />
    </MultiDataTrigger.Conditions>
    <MultiDataTrigger.Setters>
        <Setter Property="BorderThickness" Value="1"/>
        <Setter Property="BorderBrush" Value="#BF6DBDD1"/>
        <Setter Property="Background" Value="{StaticResource SelectedItemBackgroundBrush}"/>
    </MultiDataTrigger.Setters>
</MultiDataTrigger>

ただし、これはアタッチされたプロパティでは機能しません。このトリガーは機能します:

<Trigger Property="UI:TreeViewHelper.IsMouseDirectlyOverItem" Value="True">

しかし、これは機能しません:

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=UI:TreeViewHelper.IsMouseDirectlyOverItem}" Value="True"/>
        <Condition Binding="{Binding IsHighlightable}" Value="True" />
    </MultiDataTrigger.Conditions>
    <MultiDataTrigger.Setters>
        <Setter Property="BorderThickness" Value="1"/>
        <Setter Property="BorderBrush" Value="#BF6DBDD1"/>
        <Setter Property="Background" Value="{StaticResource SelectedItemBackgroundBrush}"/>
    </MultiDataTrigger.Setters>
</MultiDataTrigger>

MultiDataTrigger内でトリガーを正しく機能させる方法はありますか?IsMouseDirectlyOverItemプロパティは、ここhttp://blogs.msdn.com/b/mikehillberg/archive/2006/09/21/mytreeviewhelperismousedirectlyoveritem.aspxから取得されました。

ありがとう

4

2 に答える 2

8

添付プロパティの構文は異なります。

Path=(UI:TreeViewHelper.IsMouseDirectlyOverItem)
于 2012-07-10T18:06:00.613 に答える
6
<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding IsHighlightable}" Value="True"/>
        <Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsMouseOver}" Value="True"/>
    </MultiDataTrigger.Conditions>
    <MultiDataTrigger.Setters>
        <Setter Property="BorderThickness" Value="1"/>
        <Setter Property="BorderBrush" Value="#BF6DBDD1"/>
        <Setter Property="Background" Value="{StaticResource SelectedItemBackgroundBrush}"/>
    </MultiDataTrigger.Setters>
</MultiDataTrigger>
于 2015-12-02T09:19:46.797 に答える