我正在尝试通过单击按钮启动动画。以下代码看起来很合理,但会引发运行时错误。理想情况下,我只想将 Storyboard指向一个命令。这可能吗(我用谷歌搜索并没有发现任何迹象表明它是)

                <Button Width="50" Height="24" Content="X">
                    <Button.Triggers>
                        <EventTrigger RoutedEvent="Button.Click">
                            <BeginStoryboard Storyboard="{StaticResource ShowTemplateSelector}">
                            </BeginStoryboard>
                        </EventTrigger>
                    </Button.Triggers>
                </Button>

这是 Storyboard:
<UserControl.Resources>
    <Storyboard x:Name="ShowTemplateSelector">
        <DoubleAnimation Storyboard.TargetName="canvasStyleSelected" Storyboard.TargetProperty="Width" From="0" To="332" Duration="0:0:0.4" />
        <DoubleAnimation Storyboard.TargetName="canvasStyleSelected" Storyboard.TargetProperty="Height" From="0" To="100" Duration="0:0:0.4" />
    </Storyboard>

运行时错误说:

Microsoft JScript 运行时错误:Silverlight 应用程序中的未处理错误 2531 发生错误。 [行:97 位置:55] 在 System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
在 SilverlightApplication8.MainPage.InitializeComponent()
在 SilverlightApplication8.MainPage...ctor()
在 SilverlightApplication8.App.Application_Startup(Object sender, StartupEventArgs e)
在 MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
在 MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)

第 97 行是这样的:
<EventTrigger RoutedEvent="Button.Click">

最佳答案

您可以使用 Blend SDK 获得您想要的东西。只需将 ControlStoryboardAction 行为附加到您的按钮:

    <Button Width="50" Height="24" Content="X">
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="Click">
                <ei:ControlStoryboardAction Storyboard="{StaticResource ShowTemplateSelector}"/>
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </Button>

其中 i 和 ei 定义如下:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"

关于silverlight - 将 Silverlight 动画绑定(bind)到按钮单击,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4018197/

10-15 15:42