我有一个包含颜色的列表框,每个颜色有7个头,它是选择打印头颜色。所以我的Binding变量是选择打印头时,颜色框应该有这个样式。
<Setter TargetName="colorSelectionRectangle" Property="Fill">
<Setter.Value>
<LinearGradientBrush SpreadMethod="Repeat" StartPoint="0,0" EndPoint="25,25">
<LinearGradientBrush.RelativeTransform>
<ScaleTransform ScaleX="0.01" ScaleY="0.01" />
</LinearGradientBrush.RelativeTransform>
<GradientStop Offset="0" Color="White" />
<GradientStop Offset="0.5" Color="White" />
<GradientStop Offset="0.5" Color="{Binding [0].Item.PrintColor.Argb}" />
<GradientStop Offset="1" Color="{Binding [0].Item.PrintColor.Argb}" />
</LinearGradientBrush>
</Setter.Value>
我的错误是:
System.Windows.Data错误:2:找不到目标元素的管理FrameworkElement或FrameworkContentElement。 BindingExpression:路径= [0] .Item.PrintColor.Argb;的DataItem = NULL; target元素是'GradientStop'(HashCode = 52327179); target属性为'Color'(类型'Color')
答案 0 :(得分:1)
我认为您遇到此问题是因为GradientStop
而不是来自MSDN的FrameworkElement
...
System.Object
System.Windows.Threading.DispatcherObject
System.Windows.DependencyObject
System.Windows.Freezable
System.Windows.Media.Animation.Animatable
System.Windows.Media.GradientStop
如果您注意到上面的扩展System.Windows.Freezable
类,那么您将看到此类也是“freezable”...这意味着它无法修改。有关详细信息,请参阅MSDN上的Freezable Objects Overview页面。