WPF 内容转换

标签 wpf wpftoolkit transition

我在 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要定义状态并管理它们,您将获得转换。

编辑以回应您的评论:

您可以对选项卡控件进行子类化和样式化。一旦另一个选项卡页处于事件状态,您就可以为其不透明度设置动画。这样您就可以创建一个通用的转换容器。

编辑发现 interesting project on codeplex

关于WPF 内容转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5263745/

相关文章:

WPF数据绑定(bind)文本框到另一个对象中的整数属性

powershell - 如何在Powershell中加载WPFToolkit程序集

wpf - 是否可以在WPF的标签控件中重新排列标签项目?

c# - 如何在 XAML 中设置 WPF 工具包 DataGrid 左上角的样式?

javascript - 无法更改 setAttribute 背景图像。卡在默认值

多个 HTML 元素的 CSS 转换不触发

c# - XAML/WPF 缩放到 Canvas 上的特定区域

c# - "No target found for method"由 Caliburn Message.Attach() 抛出

android - Activity 和 fragment 之间的过渡

wpf - 如何从Task更新CollectionViewSource的Source属性?