如果您在谈论 WPF(WinForms 控件没有 Opacity 属性),则 Name 和 Opacity 属性都是Control
(特别是System.Windows.Controls.Control
)的成员。为什么不把 HandleGraphic 的签名改成(Control control, float from, float to)呢?所有控件都派生自 Control,因此您可以将它们中的任何一个传递给该方法。
更正
该Name
属性是 的成员,FrameworkElement
并且该Opacity
属性是 的成员UIElement
。因此,要同时使用 Name 和 Opacity 属性,您至少需要一个FrameworkElement
. Control
仍然适用于您的目的,但您可能希望以最小的公分母为目标。例如, aTextBlock
不是 a Control
,它直接派生自FrameworkElement
。
WPF 中的控件层次结构是:
Object
DispatcherObject
DependencyObject
Visual
UIElement
FrameworkElement
Control
从那里开始变得复杂。例如:
Button : ButtonBase : ContentControl : Control
TextBox : TextBoxBase : Control
ComboBox : Selector : ItemsControl : Control
DataGrid : MultiSelector : Selector : ItemsControl : Control
但它们都源自 源自Control
哪个 源自FrameworkElement
。
找出类型继承的最简单方法是将插入符号放在代码中的类型上,然后按 F12。这为您提供了一些描述类型的伪代码(或实际代码,如果可用),您可以以相同的方式浏览基类。