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