2010-03-10 109 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; 
    } 
}