按需按钮,以wpf为单位

时间:2012-05-09 10:45:11

标签: wpf animation mvvm

我有一个树状的结构(包含节点和边缘),我希望在点击某个节点时,一个样式的按钮栏滑出(从节点)包含最多2-4个按钮。单击窗口的任何其他部分时,栏应该滑入。这必须遵循MVVM模式,所以我理解,按钮栏必须是一个自定义控件,将绑定到特定节点的ViewModel。但是,我不知道如何实现幻灯片输入效果。 任何关于此的指导/指示将不胜感激。

的问候,

1 个答案:

答案 0 :(得分:1)

您可以将自定义控件放在Popup控件中。然后,您可以将PopupAnimation设置为Slide,这将使您可以控制滑入视图。

以下XAML定义了一个Popup,它可以滑入ToggleButton控件旁边的视图中。切换按钮时弹出窗口 - 您需要更改此行为,以便在单击节点时弹出窗口。当Popup失去焦点时,它会关闭。

    <ToggleButton x:Name="toggleButton>Click to show</ToggleButton>
    <Popup IsOpen="{Binding ElementName=toggleButton, Path=IsChecked, Mode=TwoWay}"
           PlacementTarget="{Binding ElementName=toggleButton}"
           StaysOpen="False"
           Placement="Right"
           PopupAnimation="Slide">

        <!-- Your custom control goes here -->

    </Popup>

您可以使用其他动画效果 - 淡化和滚动。如果你需要更复杂的东西,你需要看看设置一个StoryBoard。