zoukankan      html  css  js  c++  java
  • wpf获取模板化控件中的动画。

    直接在在模版中用blend添加动画,默认会放在ControlTemplate 的 Resources下面,使用了多种方法都无法正确获取Storyboard。。

    <ControlTemplate TargetType="{x:Type local:TWindow}">
                            <ControlTemplate .Resources>
                                <Storyboard x:Key="PromptMessage">
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="promptGrid">
                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}"/>
                                        <DiscreteObjectKeyFrame KeyTime="0:0:1.5" Value="{x:Static Visibility.Collapsed}"/>
                                    </ObjectAnimationUsingKeyFrames>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="promptBorder">
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="1"/>
                                        <EasingDoubleKeyFrame KeyTime="0:0:1" Value="1"/>
                                        <EasingDoubleKeyFrame KeyTime="0:0:1.5" Value="0.01"/>
                                    </DoubleAnimationUsingKeyFrames>
                                </Storyboard>
                            </ControlTemplate .Resources>
                        <Grid x:Name="PART_MainGrid" Margin="3">
        </Grid>
     </ControlTemplate>
    

      

    将动画移到Grid的Resources下面,通过Grid来找到动画。代码如下。

    <ControlTemplate TargetType="{x:Type local:TWindow}">
                        <Grid x:Name="PART_MainGrid" Margin="3">
                            <Grid.Resources>
                                <Storyboard x:Key="PromptMessage">
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="promptGrid">
                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}"/>
                                        <DiscreteObjectKeyFrame KeyTime="0:0:1.5" Value="{x:Static Visibility.Collapsed}"/>
                                    </ObjectAnimationUsingKeyFrames>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="promptBorder">
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="1"/>
                                        <EasingDoubleKeyFrame KeyTime="0:0:1" Value="1"/>
                                        <EasingDoubleKeyFrame KeyTime="0:0:1.5" Value="0.01"/>
                                    </DoubleAnimationUsingKeyFrames>
                                </Storyboard>
                            </Grid.Resources>
    </Grid>
     </ControlTemplate>
    

      

              Grid  rootGrid = this.GetTemplateChild("PART_MainGrid") as Grid;
                if (rootGrid != null)
                {
                  Storyboard PromptMessage = (Storyboard)rootGrid.Resources["PromptMessage"];
    
                }
    

      

  • 相关阅读:
    java中变量、对象的存储
    悬停小组件-反馈和返回顶部
    setTimeout、setInternal传递带参数的函数
    jquery绑定事件时如何传递参数
    jQuery判断复选框checkbox是否选中
    bootstrap模态框垂直居中显示
    【转】Spring事务的隔离级别
    第一天 纪念下下
    羊车门
    关于Python课程的一些思考。
  • 原文地址:https://www.cnblogs.com/m7777/p/4477627.html
Copyright © 2011-2022 走看看