繁体   English   中英

WPF在代码中初始化DP与XAML

[英]WPF Initializing DP in Code vs. XAML

当我声明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#中声明(例如画笔,几何体等)。

图像停车标志控件。 我应该将background = red放在C#中还是用XAML中的setter声明它? 八边形的几何形状等也一样。

传递给DependencyProperty.RegisterFrameworkPropertyMetadata定义所有实例中依赖项属性的实际默认值。 它是类型定义的一部分。

样式中的样式设置器仅是Style一部分,即使它恰好是控件的默认样式。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM