首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

silverlight触发器中什么事件可以作为RoutedEvent事件解决方案

2013-08-01 
silverlight触发器中什么事件可以作为RoutedEvent事件Canvas BackgroundAliceBlueEllipse x:Namee

silverlight触发器中什么事件可以作为RoutedEvent事件

  <Canvas Background="AliceBlue">

            <Ellipse x:Name="ellipse1" Fill="GreenYellow"

                     Width="150" Height="200" />

            <Button x:Name="bt" Content="Button" HorizontalAlignment="Left" Margin="238,151,0,0" VerticalAlignment="Top" Width="75" >
                <Button.Triggers>

                    <!--创建触发器-->

                    <EventTrigger RoutedEvent="Canvas.Loaded">

                        <EventTrigger.Actions>

                            <BeginStoryboard>

                                <Storyboard>

                                    <DoubleAnimation

                                                        Storyboard.TargetName="ellipse1"

                                                        Storyboard.TargetProperty="Width"

                                                        From="150" To="300" Duration="0:0:3" />



                                </Storyboard>

                            </BeginStoryboard>

                        </EventTrigger.Actions>

                    </EventTrigger>

                </Button.Triggers>

            </Button>

        </Canvas>       



如上代码,当我把RoutedEvent="Canvas.Loaded"替换为RoutedEvent="Button.Click"时就会提示“The event "click" is not a RoutedEvent”
我想问一些哪些事件可以作为RoutedEvent,如果我想让Button的Click事件触发这个动画,那么这个代码该如何修改。多谢各位赐教。 Silverlight 动画 触发器
[解决办法]
http://msdn.microsoft.com/zh-cn/library/vstudio/system.windows.eventtrigger%28v=vs.95%29.aspx

引用
备注
Silverlight 支持元素上的 EventTrigger 和 object.Triggers 属性元素使用率,但当前应用程序不支持使用此技术。 EventTrigger 仅能支持 Loaded 事件的一次触发操作(在 EventTrigger.RoutedEvent 属性中命名触发事件。)这就使 EventTrigger 不适合大多数运行时交互。 此时不使用 EventTrigger 和 Triggers 属性,而是考虑以下两种备选方法之一:
    要对不属于控件的对象的属性进行动画处理,请将演示图板放在页面或应用程序的常规 Resources 中。 然后在放置"Triggers"的元素上分配一个事件处理程序。 响应相关事件时,该事件处理程序应从资源字典中检索演示图板。 然后,您对检索到的 Storyboard 调用 Begin。
    要对属于控件的对象的属性进行动画处理(派生自 Control),请使用 VisualStateManager 技术,并通过调用 GoToState 基于控件的状态或输入信息运行适当的动画。




    <UserControl.Resources>
        <Storyboard x:Name="myStoryboard">
            <DoubleAnimation Storyboard.TargetName="ellipse1" Storyboard.TargetProperty="Width" From="150" To="300" Duration="0:0:3"/>
        </Storyboard>
    </UserControl.Resources>

    <Canvas Background="AliceBlue">

        <Ellipse x:Name="ellipse1" Fill="GreenYellow" Width="150" Height="200" />

        <Button x:Name="bt" Content="Button" HorizontalAlignment="Left" Margin="238,151,0,0" VerticalAlignment="Top" Width="75" Click="bt_Click" />

    </Canvas>


private void bt_Click(object sender, RoutedEventArgs e)
{
    myStoryboard.Begin();
}

热点排行