2010-03-10 107 views
0

下面,我有这些资源我想绑定到第三个GradientStop到MyColor,MyColor是DependencyProperty,但在不工作,如果我删除绑定,并把静态颜色“#ff000000”它是工作可以一些身体帮助我?GradientStop颜色绑定依赖项属性

<Grid.Resources> 
      <LinearGradientBrush x:Key="MyBrush" EndPoint="0, 1" StartPoint="0, 0"> 
       <GradientStop Color="#00000000" Offset="1"/> 
       <GradientStop Color="#FFFFFFFF" Offset="1"/> 
       <GradientStop Color="{Binding Path=MyColor}" Offset="0"/> 
       <!--#ff000000 --> 

      </LinearGradientBrush> 

      <Style x:Key="ThumbStyle" TargetType="{x:Type Thumb}"> 
       <Setter Property="Template"> 
        <Setter.Value> 
         <ControlTemplate > 
          <Rectangle StrokeThickness="1" StrokeDashCap="Round" 
             Stretch="Fill" Name="ThumbContnet" Fill="{StaticResource MyBrush}"></Rectangle> 
          <!----> 
         </ControlTemplate> 
        </Setter.Value> 
       </Setter> 
      </Style> 
     </Grid.Resources> 

问候 法迪AL赛义德

+1

什么是MyColor的类型?它是一个字符串或'System.Windows.Media.Color'(应该是后者)? Visual Studio输出窗口中是否显示任何绑定错误? – Heinzi 2010-03-10 14:51:06

+0

是的,它是System.Windows.Media.Color – 2010-03-10 14:55:56

+0

没有绑定错误 – 2010-03-10 14:56:20

回答

0

根据您的意见,您没有设置DataContext本身。声明一个依赖属性不足以使绑定起作用。在用户控件的构造函中写入:

public class MyControl : UserControl 
{ 
    public static readonly DependencyProperty MyColorProperty = DependencyProperty.Register("MyColor", typeof(Color), typeof(StageToolsWindow), new FrameworkPropertyMetadata((Color)Colors.Black)); 

    public Color MyColor 
    { 
    get { return (Color)GetValue(MyColorProperty); } 
    set { SetValue(MyColorProperty, value); } 
    } 

    public MyControl() 
    { 
    InitializeComponent(); 
    DataContext = this; 
    } 
}