当我申报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声明它?八角形几何等同样
答案 0 :(得分:0)
传递给FrameworkPropertyMetadata
的{{1}}定义了所有实例中依赖项属性的实际默认值。它是该类型定义的一部分。
样式中的样式设置器只是DependencyProperty.Register
的一部分,即使它恰好是控件的默认样式。
因此,如果您作为控件作者确实依赖于依赖项属性具有默认值,则应在注册依赖项属性时指定此值。这应该是属性/类型定义的一部分。