我知道你可以在XAML中动态执行此操作,但是如何在代码中执行此操作?
我有一个由用户绘制的矩形,我想通过代码将一个滑块附加到rotatetransform。
帮助?
答案 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);