1

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

问候,

4

1 回答 1

1

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

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

    <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。

于 2012-05-09T10:58:41.087 回答