由于 Border 不是从 Control 派生的,它是如何工作的?
<Border.Style>
<Style>
<Style.Setters>
<Setter Property="Control.Background" Value="LightBlue"/>
</Style.Setters>
</Style>
</Border.Style>
由于 Border 不是从 Control 派生的,它是如何工作的?
<Border.Style>
<Style>
<Style.Setters>
<Setter Property="Control.Background" Value="LightBlue"/>
</Style.Setters>
</Style>
</Border.Style>
Background
WPF 中的依赖属性由许多类共享。它在Panel
类中定义,其他类只调用AddOwner
它。
边框.cs
[CommonDependencyProperty]
public static readonly DependencyProperty BackgroundProperty =
Panel.BackgroundProperty.AddOwner(
typeof (Border),
new FrameworkPropertyMetadata(null,
FrameworkPropertyMetadataOptions.AffectsRender |
FrameworkPropertyMetadataOptions.SubPropertiesDoNotAffectRender));
面板.cs
[CommonDependencyProperty]
public static readonly DependencyProperty BackgroundProperty =
DependencyProperty.Register("Background",
typeof(Brush),
typeof(Panel),
new FrameworkPropertyMetadata((Brush)null,
FrameworkPropertyMetadataOptions.AffectsRender |
FrameworkPropertyMetadataOptions.SubPropertiesDoNotAffectRender));
Control
可以与用户交互的类。这包括类:TextBox
、Button
等。来自MSDN的引用:
Control 类是您添加到应用程序的许多控件的基类。Control 类定义了非常少的行为;虽然可以将 Control 添加到您的应用程序,但添加从 Control 继承的控件(例如 Button 或 ListBox)更为常见。
他还添加了一个依赖属性,例如Background
、FontFamily
、Foreground
等,这些属性对System.Windows.Controls
. 完整的属性列表在这里。ControlTemplate
他还代表了使用 a来定义其外观的用户界面 (UI) 元素的基类。
让我们看看MSDNBorder
上的, 链接上的继承层次结构:
System.Object
System.Windows.Threading.DispatcherObject
System.Windows.DependencyObject
System.Windows.Media.Visual
System.Windows.UIElement
System.Windows.FrameworkElement
System.Windows.Controls.Decorator
System.Windows.Controls.Border
因此System.Windows.Controls
,它继承了所有可用的属性Control
。