【发布时间】:2011-01-29 07:58:32
【问题描述】:
我知道您可以在 XAML 中动态执行此操作,但您如何在代码中执行此操作?
我有一个用户绘制的矩形,我想通过代码将滑块附加到旋转变换。
帮助?
【问题讨论】:
标签: silverlight silverlight-4.0 binding
我知道您可以在 XAML 中动态执行此操作,但您如何在代码中执行此操作?
我有一个用户绘制的矩形,我想通过代码将滑块附加到旋转变换。
帮助?
【问题讨论】:
标签: silverlight silverlight-4.0 binding
很奇怪,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;
【讨论】:
您可以使用 Vorrtex 提供的分析器执行此操作,方法是在运行时加载 XAML,但是 Silverlight 4.0 添加了绑定到依赖项对象的功能,因此现在您可以绑定
对于从依赖对象继承的转换之类的东西。使用BindingOperations 类,您可以传入DependancyObject、要绑定的Property 和绑定表达式。
//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);
【讨论】: