获取要在不透明度更改中使用的发送控件的名称属性
本文关键字:控件 属性 不透明度 获取 | 更新日期: 2023-09-27 18:35:18
好的,我会尽量解释。
我有一个方法,"HandleGraphic"。这种方法将是..通过对数函数处理给定控件的不透明度。
方法参数为:(对象发送对象、浮点从、浮点到)
我的问题是:我如何以直接能够操作其值/属性的方式强制转换/绑定 SendingObject?
例如:假设文本框调用 HandleGraphic 方法。HandleGraphic 需要发送控件的 Name 属性"txtbox"来调整其 Opacity 属性。
必须有一种实现强制转换或绑定的全局函数的方法,以直接访问调用对象的属性。
例如:SendingObject.Opacity = X;
任何帮助将不胜感激。
如果您谈论的是 WPF(WinForms 控件没有 Opacity 属性),则 Name 和 Opacity 属性都是 Control
的成员(特别是 System.Windows.Controls.Control
)。为什么不将 HandleGraphic 的签名更改为(控制控制、浮动自、浮动到)?所有控件都派生自 Control,因此您可以将其中任何一个传递给该方法。
校正
Name
属性是 FrameworkElement
的成员,Opacity
属性是 UIElement
的成员。因此,要使用名称和不透明度属性,您至少需要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。这为您提供了一些描述类型的伪代码(或实际代码,如果可用),并且您可以以相同的方式浏览基类。