3

我有一个包含颜色的列表框,每种颜色都有 7 个头,它是为颜色选择打印头。因此,我的绑定变量是选择打印头时,颜色框应该具有这种样式。

<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:Path=[0].Item.PrintColor.Argb; 数据项=空;目标元素是'GradientStop' (HashCode=52327179);目标属性是“颜色”(类型“颜色”)

4

1 回答 1

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上面的扩展类,那么你会看到这个类也是“可冻结的”......这意味着它不能被修改。有关详细信息,请参阅 MSDN 上的可冻结对象概述页面。

于 2013-08-20T08:05:44.953 回答