2

わかりました、できる限り説明します。

「HandleGraphic」というメソッドがあります。このメソッドは..対数関数を介して特定のコントロールの不透明度を処理します。

メソッドのパラメーターは次のとおりです。(オブジェクト SendingObject、フロート From、フロート To)

私の質問は、値/プロパティを直接操作できるように SendingObject をキャスト/バインドするにはどうすればよいですか?

例: テキスト ボックスが HandleGraphic メソッドを呼び出すとします。HandleGraphic は、送信側コントロールの Name プロパティ "txtbox" を使用して、Opacity プロパティを調整する必要があります。

呼び出し元オブジェクトのプロパティに直接アクセスするには、キャストまたはバインディングのグローバル関数を実装する方法が必要です。

例えば:SendingObject.Opacity = X;

どんな助けでも大歓迎です。

4

1 に答える 1

0

WPF について話している場合 (WinForms コントロールには Opacity プロパティがありません)、Name プロパティと Opacity プロパティの両方がControl(具体的にはSystem.Windows.Controls.Control) のメンバーです。HandleGraphic の署名を (コントロール コントロール、フロート元、フロート先) に変更してみませんか? すべてのコントロールは Control から派生するため、任意のコントロールをそのメソッドに渡すことができます。

修正

プロパティはのNameメンバーでFrameworkElementあり、Opacityプロパティは のメンバーですUIElement。したがって、Name プロパティと Opacity プロパティの両方を操作するには、少なくとも が必要ですFrameworkElementControl目的のためにはまだ機能しますが、最小公分母を目指すことをお勧めします。たとえば、 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 キーを押すことです。これにより、型を説明する疑似コード (または、利用可能な場合は実際のコード) が提供され、同じ方法で基本クラスをナビゲートできます。

于 2012-05-23T16:41:08.417 に答える