WPF について話している場合 (WinForms コントロールには Opacity プロパティがありません)、Name プロパティと Opacity プロパティの両方がControl
(具体的にはSystem.Windows.Controls.Control
) のメンバーです。HandleGraphic の署名を (コントロール コントロール、フロート元、フロート先) に変更してみませんか? すべてのコントロールは Control から派生するため、任意のコントロールをそのメソッドに渡すことができます。
修正
プロパティはのName
メンバーでFrameworkElement
あり、Opacity
プロパティは のメンバーですUIElement
。したがって、Name プロパティと Opacity プロパティの両方を操作するには、少なくとも が必要ですFrameworkElement
。Control
目的のためにはまだ機能しますが、最小公分母を目指すことをお勧めします。たとえば、 aTextBlock
は ではなく、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 キーを押すことです。これにより、型を説明する疑似コード (または、利用可能な場合は実際のコード) が提供され、同じ方法で基本クラスをナビゲートできます。