好的,我会尽可能地尝试解释。
我有一个方法,“HandleGraphic”。这个方法将是..通过对数函数处理给定控件的不透明度。
方法参数是:(对象SendingObject,float From,float To)
我的问题是:如何以直接能够操纵它的值/属性的方式转换/绑定SendingObject?
例如:假设文本框调用HandleGraphic方法。 HandleGraphic需要发送控件的Name属性“txtbox”来调整它的Opacity属性。
必须有一种方法来实现强制转换或绑定的全局函数,以直接访问调用对象的属性。
例如:SendingObject.Opacity = X;
非常感谢任何帮助。
答案 0 :(得分:0)
如果您正在谈论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
仍然可以用于您的目的,但您可能希望以最低的公分为目标。例如,TextBlock
不是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。这为您提供了一些描述类型的伪代码(或实际代码,如果它可用),您可以以相同的方式浏览基类。