GradientStop颜色绑定依赖项属性
问题描述:
下面,我有这些资源我想绑定到第三个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赛义德
答
根据您的意见,您没有设置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;
}
}
什么是MyColor的类型?它是一个字符串或'System.Windows.Media.Color'(应该是后者)? Visual Studio输出窗口中是否显示任何绑定错误? – Heinzi 2010-03-10 14:51:06
是的,它是System.Windows.Media.Color – 2010-03-10 14:55:56
没有绑定错误 – 2010-03-10 14:56:20