【问题标题】:Binding a silder control to a RotateTransform at runtime in Silverlight 4?在 Silverlight 4 中运行时将 silder 控件绑定到 RotateTransform?
【发布时间】:2011-01-29 07:58:32
【问题描述】:

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

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

帮助?

【问题讨论】:

    标签: silverlight silverlight-4.0 binding


    【解决方案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;
    

    【讨论】:

      【解决方案2】:

      您可以使用 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);
      

      【讨论】:

        猜你喜欢
        • 2011-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-29
        • 2013-02-21
        相关资源
        最近更新 更多