我尝试在代码(c#)的silverlight 4中将translateTransform和CompositeTransform绑定在一起。我无法在xaml中执行此操作,因为UIelements是动态加载的。我只需要Xoffset。 CompositeTransform是源。我有正在运行的代码,但是不起作用:
TranslateTransform trans = new TranslateTransform();
Binding transBind = new Binding("Value");
transBind.Source = ((CompositeTransform)SchedulePanel.RenderTransform);
BindingOperations.SetBinding(trans, TranslateTransform.XProperty, transBind);
line.TextChannelName.RenderTransform = trans;
谢谢
最佳答案
由于TranslateTransform不是FrameworkElement,因此要成为绑定的目标,它必须满足以下条件之一(来自MSDN):
在Silverlight 4中,在以下情况下,目标也可以是DependencyObject的DependencyProperty:
DependencyObject是FrameworkElement属性的值。
DependencyObject在一个集合中,该集合是FrameworkElement属性(例如,Resources属性)的值。
DependencyObject在DependencyObjectCollection中。
因此,在设置绑定之前,请尝试将trans TranslateTransform设置为TextChannelName的Transform,以便在设置装箱时确定目标。
尝试:
TranslateTransform trans = new TranslateTransform();
line.TextChannelName.RenderTransform = trans;
Binding transBind = new Binding("Value");
transBind.Source = ((CompositeTransform)SchedulePanel.RenderTransform);
BindingOperations.SetBinding(trans, TranslateTransform.XProperty, transBind);