我在 WPF 中有一个用户控件,里面有 2 个按钮。 这些按钮是重叠的,您一次只能看到一个按钮。 我想在按钮之间使用淡入淡出过渡。
我可以使用以下布局在代码隐藏中使用不透明动画来实现此目的:
<UserControl>
<Grid>
<Button x:Name="buttonA">A</Button>
<Button x:Name="buttonB">B</Button>
</Grid>
</UserControl>
但我想要一个更好的解决方案,最好是在 XAML 中。 像这样的事情:
<UserControl>
<TransitionContent CurrentContent="{Binding CurrentItemKey}" Transition="Fade">
<TransitionContentItem Key="ItemA">
<Button x:Name="buttonA">A</Button>
</TransitionContentItem>
<TransitionContentItem Key="ItemB">
<Button x:Name="buttonB">B</Button>
</TransitionContentItem>
</TransitionContent>
</UserControl>
我可以使用 LayoutToolkit:TransitioningContentControl 来完成此操作吗?
还有哪些其他选择?
谢谢
最佳答案
我不确定您是否会接受这个答案,但这里是:
从按钮转换为按钮可能意味着您应该有一个具有(至少)两种状态的按钮。
如果您使用 VisualStateManager要定义状态并管理它们,您将获得转换。
编辑以回应您的评论:
您可以对选项卡控件进行子类化和样式化。一旦另一个选项卡页处于事件状态,您就可以为其不透明度设置动画。这样您就可以创建一个通用的转换容器。
关于WPF 内容转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5263745/