如何使用" caliburn micro 2"和" windows phone 8.1"

时间:2014-11-09 10:21:42

标签: storyboard windows-phone-8.1 caliburn.micro

我正在使用 caliburn micro v2 windows phone 开发一款bord游戏。

我想在棋盘上放一块石头时开始动画。

我想知道如何启动动画/故事板,当在视图模型中发生石头更改事件时。 我更喜欢将xaml放在石头样式中,因为板上的石头数量很多。

2 个答案:

答案 0 :(得分:0)

我以前从未做过windows phone应用程序。但是我在wpf应用程序中使用以下代码

如果您的样式在App.xaml的Resources中定义,则可以使用此代码

这是代码:

FrameworkElement element = new FrameworkElement();
Storyboard sb=new Storyboard ();
sb = element.FindResource("Please write here Storyboard Key") as Storyboard;
sb.Begin(target element name , true);

请看一下这个链接:How can I add a storyboard animation to my page resources in C#, then call it again later? 我希望它对您的业务有所帮助。

答案 1 :(得分:0)

您不应该按照建议从视图模型中调用故事板。故事是特定于视图的,您将删除代码的可测试性和可移植性。

您的问题不是非常具体,并且没有代码示例,所以它不是很容易帮助,但考虑使用触发器来启动故事板。通过这种方式,您可以在视图中保留所有内容。

如果viewmodel中有属性,则可以在更改值时使用数据触发器启动故事板。也许类似于这个

导入:

  xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
  xmlns:core="using:Microsoft.Xaml.Interactions.Core"

示例:

<interactivity:Interaction.Behaviors>
        <core:DataTriggerBehavior Binding="{Binding LoginPageIsEnabled}"
                               ComparisonCondition="Equal" Value="False">
            <core:GoToStateAction StateName="Loading" />
        </core:DataTriggerBehavior>
        <core:DataTriggerBehavior Binding="{Binding LoginPageIsEnabled}"
                               ComparisonCondition="Equal" Value="True">
             <core:GoToStateAction StateName="DoneLoading" />
        </core:DataTriggerBehavior>
</interactivity:Interaction.Behaviors>