在Silverlight 4中运行时将滑块控件绑定到RotateTransform?

时间:2011-01-29 07:58:33

标签: silverlight silverlight-4.0 binding

我知道你可以在XAML中动态执行此操作,但是如何在代码中执行此操作?

我有一个由用户绘制的矩形,我想通过代码将一个滑块附加到rotatetransform。

帮助?

2 个答案:

答案 0 :(得分:1)

奇怪的是,Transform类没有方法SetBinding()。 以下是此问题的解决方法:

var rect = new Rectangle { Width = 100, Height = 60, Fill = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0)) };

var t = 
    XamlReader.Load("<RotateTransform xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' "+
            "Angle='{Binding Value, ElementName=slider1}'/>") as RotateTransform;
rect.RenderTransform = t;

答案 1 :(得分:0)

你可以使用Vorrtex给出的anser,通过在运行时加载XAML,但是Silverlight 4.0添加了绑定到依赖项对象的能力,所以现在你可以绑定 从依赖对象继承的转换之类的东西。使用BindingOperations类,可以传入DependancyObject,要绑定的属性和绑定表达式。

//w is a UIElement
//rot is a rotate transform

w.RenderTransform = rot;

Binding b = new Binding("Value") { Source = RotationSlider };
BindingOperations.SetBinding(rot, RotateTransform.AngleProperty, b);