C# 如何在对自定义控件使用绑定时允许默认值
总之,我正在开发一个自定义控件,该控件具有C# 如何在对自定义控件使用绑定时允许默认值,c#,wpf,xaml,.net-4.0,styles,C#,Wpf,Xaml,.net 4.0,Styles,总之,我正在开发一个自定义控件,该控件具有边框,背景设置如下 <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FFF7F7F7" Offset="0.164" /> <GradientStop Color="#FFDBDBDB" Offset="0.664" /> <GradientStop Color="#FFB3B3
边框
,背景设置如下
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFF7F7F7" Offset="0.164" />
<GradientStop Color="#FFDBDBDB" Offset="0.664" />
<GradientStop Color="#FFB3B3B3" Offset="0.978" />
</LinearGradientBrush>
但是,我希望允许用户覆盖此选项。我创建了一个类型为Brush
的依赖属性,但是我不知道如何绑定到后台,而XAML中仍然有这个默认值。这可能吗?看看
然后在默认ControlTemplate的某些部分:
<Border Background="{TemplateBinding Background}">
....
</Border>
....
这将允许使用者覆盖默认背景,同时保持定义的样式:
<your:YourControl/> <!-- Will use default Background -->
<your:YourControl Background="Green"/> <!-- will have Green background -->
只是为了向未来的任何人澄清
Background
必须保持为空,以实现舍入和其他美学效果,因此我必须创建一个WindowBackground
依赖属性。但是,Background
可以替换为控件的任何依赖项属性,即使是自定义属性:)
<your:YourControl/> <!-- Will use default Background -->
<your:YourControl Background="Green"/> <!-- will have Green background -->