无法为目标元素找到管理FrameworkElement或FrameworkContentElement。渐变停

时间:2013-08-20 07:15:39

标签: wpf

我有一个包含颜色的列表框,每个颜色有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')

1 个答案:

答案 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页面。