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您需要一个Popup触发情节提要的情节提要,该情节提要包含BooleanAnimationUsingKeyFrames设置IsOpen为的情节提要false类似于此。更容易使用代码隐藏;o)

于 2012-09-25T15:25:59.623 回答
2

您可以只制作Popup.Childa Button(样式让它看起来不像一个),处理它的Click事件并设置IsOpenfalse(最好使用SetCurrentValue不破坏绑定)。

您可以在后面的代码中执行此操作,也可以使用行为/触发操作。

于 2012-09-25T15:31:18.147 回答