WPF在代码与XAML中初始化DP

时间:2017-08-21 23:51:50

标签: c# wpf

当我申报DP时:

    public static readonly DependencyProperty StrokeThicknessProperty = DependencyProperty.Register("StrokeThickness", typeof(double),
        typeof(xxx), new FrameworkPropertyMetadata(1.0));

在那里初始化它与在XAML样式声明中初始化它之间有区别吗?如:

Property="StrokeThickness" Value="1.0"

正如Peter指出的那样,XAML方法在派生类中是不可访问的,但是在C#中声明一些属性是很痛苦的(即画笔,几何等)。

图像停止标志控件。我应该将背景=红色放在C#中还是用XAML中的setter声明它?八角形几何等同样

1 个答案:

答案 0 :(得分:0)

传递给FrameworkPropertyMetadata的{​​{1}}定义了所有实例中依赖项属性的实际默认值。它是该类型定义的一部分。

样式中的样式设置器只是DependencyProperty.Register的一部分,即使它恰好是控件的默认样式。

因此,如果您作为控件作者确实依赖于依赖项属性具有默认值,则应在注册依赖项属性时指定此值。这应该是属性/类型定义的一部分。