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

为按钮设置TransformGroup怎么通过代码实现

2012-12-17 
为按钮设置TransformGroup如何通过代码实现Button Content哈哈 Width40 Height40 RenderTransfo

为按钮设置TransformGroup如何通过代码实现


<Button Content="哈哈" Width="40" Height="40" RenderTransformOrigin="0.5,0.5">                
                <Button.RenderTransform>
                    <TransformGroup>
                        <RotateTransform x:Name="rotateTransform" Angle="{Binding ElementName=slider,Path=Value}" />
                        <TranslateTransform x:Name="translateTransform" X="{Binding ElementName=slider,Path=Value}" />
                    </TransformGroup>
                </Button.RenderTransform>
</Button>

我在网上找到这样一段XAML代码,它的实现效果是将按钮进行旋转滚动平移,让按钮跟汽车轮子一样,但是我不知道怎么样将这段代码用后台代码实现,因为我要把这个效果做成一个Behavior,然后在后台代码里去实现这样的效果,具体代码如下:

TranslateTransform translation = new TranslateTransform();
                RotateTransform rotate = new RotateTransform();

                DoubleAnimation animation = new DoubleAnimation(xTranslateFrom, xTranslateTo, TimeSpan.FromMilliseconds(xRotateDuration));
                TransformGroup transform = new TransformGroup();
                transform.Children.Add(rotate);
                transform.Children.Add(translation);
                this._StretchButton.RenderTransform = transform;

                Storyboard.SetTarget(animation, this._StretchButton);
                Storyboard.SetTargetProperty(animation,
                    new PropertyPath("X"));

                Storyboard.SetTarget(animation, this._StretchButton);
                Storyboard.SetTargetProperty(animation,
                    new PropertyPath("Angle"));
                //Storyboard.SetTarget(animation, this._StretchButton);
                //Storyboard.SetTargetProperty(animation,
                //    new PropertyPath("(xStretchButton.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)"));




                Storyboard sb = new Storyboard();
                sb.Duration = TimeSpan.FromMilliseconds(xRotateDuration);
                sb.Children.Add(animation);
                sb.Begin();


这段代码是放在一个继承Behavior<UIElement>的类里面的,xTranslateFrom, xTranslateTo,xRotateDuration都是定义的依赖属性,用来提供控制的一些参数;xStretchButton是一个i额继承了Button的自定义控件,
执行上面的代码的时候提示“无法解析属性路径“Angle”中的所有属性引用。请确认适用的对象支持这些属性。”
我想请问下这个代码需求如何修改
[最优解释]
 Storyboard.SetTarget(animation, this._StretchButton);
                Storyboard.SetTargetProperty(animation,
                    new PropertyPath("Angle"));
你这句是向animation对象设置Angle属性,而animation对象是DoubleAnimation动画!!
应该是针对RotateTransform类的对象实体设置该属性。

热点排行