获取要在不透明度更改中使用的发送控件的名称属性

本文关键字:控件 属性 不透明度 获取 | 更新日期: 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 的成员。因此,要使用名称和不透明度属性,您至少需要FrameworkElementControl仍然适用于您的目的,但您可能希望以最低公分母为目标。例如,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。这为您提供了一些描述类型的伪代码(或实际代码,如果可用),并且您可以以相同的方式浏览基类。