3

コンテンツがクリックされたときに次のポップアップを閉じるにはどうすればよいですか?

<Button Name="myButton" Content="Hover to open" />
<Popup PlacementTarget="{Binding ElementName=myButton}" Placement="Bottom">
    <Popup.Resources>
        <DataConversion:BooleanOrConverter x:Key="booleanOrConverter" />
    </Popup.Resources>            
    <Popup.IsOpen>
        <MultiBinding Mode="OneWay" Converter="{StaticResource booleanOrConverter}">
            <Binding Mode="OneWay" ElementName="myButton" Path="IsMouseOver"/>
            <Binding RelativeSource="{RelativeSource Self}" Path="IsMouseOver" />
        </MultiBinding>
    </Popup.IsOpen>
    <!-- some content here -->
</Popup>

コード ビハインド ファイルにコードを記述したり、IsOpen プロパティや MouseDown イベントなどの視覚的および動作的なものを ViewModel にバインドしたりしたくありませんでした。

4

2 に答える 2

2

この のように、に設定された を含むストーリーボードをトリガーするEventTriggerが必要です。コードビハインドを使用する方が簡単です;o)PopupBooleanAnimationUsingKeyFramesIsOpenfalse

于 2012-09-25T15:25:59.623 に答える
2

aを作成し (スタイルを設定してPopup.Childa のButtonように見えないようにする)、そのClickイベントを処理してに設定IsOpenすることができますfalse(できればSetCurrentValue、バインディングを破棄しないように使用します)。

これは、コード ビハインドで行うか、ビヘイビア/トリガー アクションを使用して行うことができます。

于 2012-09-25T15:31:18.147 に答える