2011-03-10 76 views
2

我在WPF中有一个用户控件,里面有2个按钮。 这些按钮位于叠加层中,一次只能看到一个按钮。 而我想使用按钮之间的淡入淡出过渡。wpf内容转换

我可以在代码隐藏的不透明度动画用这个布局完成:

<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做到这一点?

还有其他的选择吗?

感谢

回答

3

我不知道你是否会接受这个作为一个答案,但这里有云:

从一个按钮,一个按钮过渡可能意味着你应该有一个按钮(在至少)两种状态。

如果使用VisualStateManager定义状态和管理他们,你会得到转变抛出

编辑响应您的评论:

,那么可以继承和风格的tabcontrol。只要另一个选项卡页面处于活动状态,就会为其不透明度设置动画。这样你可以创建一个通用的转换容器。

编辑找到一个interesting project on codeplex

+0

对不起,我的坏榜样;更改两个ContentControls的两个按钮。 – eze1981 2011-03-10 18:34:46

+0

我编辑了我的答案 – 2011-03-10 18:44:07

+0

好主意,我可以用自定义tabControl或选择器来做到这一点。 – eze1981 2011-03-10 18:58:29