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

C# 获取要在不透明度更改中使用的发送控件的Name属性,c#,binding,casting,opacity,graphic,C#,Binding,Casting,Opacity,Graphic,好的,我会尽力解释的 我有一个方法,手绘的。此方法将通过对数函数处理给定控件的不透明度 方法参数为:对象发送对象、浮点从、浮点到 我的问题是:如何强制转换/绑定SendingObject,使其能够直接操作其值/属性 例如:假设文本框调用HandleGraphic方法。HandleGraphic需要发送控件的Name属性txtbox来调整其不透明度属性 必须有一种实现强制转换或绑定的全局函数的方法来直接访问调用对象的属性 例如:SendingObject.Opacity=X 任何帮助都将不胜感激。

好的,我会尽力解释的

我有一个方法,手绘的。此方法将通过对数函数处理给定控件的不透明度

方法参数为:对象发送对象、浮点从、浮点到

我的问题是:如何强制转换/绑定SendingObject,使其能够直接操作其值/属性

例如:假设文本框调用HandleGraphic方法。HandleGraphic需要发送控件的Name属性txtbox来调整其不透明度属性

必须有一种实现强制转换或绑定的全局函数的方法来直接访问调用对象的属性

例如:SendingObject.Opacity=X


任何帮助都将不胜感激。

如果您谈论的是WPF WinForms控件没有不透明度属性,则名称和不透明度属性都是控件的成员,特别是System.Windows.controls.Control。为什么不将HandleGraphic的签名更改为Control Control,float from,float to?所有控件都派生自控件,因此可以将其中任何控件传递给该方法

更正

Name属性是FrameworkElement的成员,Opacity属性是UIElement的成员。因此,要同时使用Name和Opacity属性,您至少需要一个FrameworkElement。控制仍然会为您的目的工作,但您可能希望将目标定为最低公分母。例如,TextBlock不是控件,它直接从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
但它们都是从控件派生的,而控件是从FrameworkElement派生的


找出类型继承的最简单方法是在代码中的类型上加上插入符号,然后按F12键。这将为您提供一些描述类型或实际代码(如果可用)的伪代码,并且您可以以相同的方式浏览基类。

如果您谈论的是WPF WinForms控件没有不透明属性,则名称和不透明属性都是控件的成员,特别是System.Windows.controls.Control。为什么不将HandleGraphic的签名更改为Control Control,float from,float to?所有控件都派生自控件,因此可以将其中任何控件传递给该方法

更正

Name属性是FrameworkElement的成员,Opacity属性是UIElement的成员。因此,要同时使用Name和Opacity属性,您至少需要一个FrameworkElement。控制仍然会为您的目的工作,但您可能希望将目标定为最低公分母。例如,TextBlock不是控件,它直接从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
但它们都是从控件派生的,而控件是从FrameworkElement派生的

找出类型继承的最简单方法是在代码中的类型上加上插入符号,然后按F12键。这将为您提供一些描述类型的伪代码或实际代码(如果可用),并且您可以以相同的方式浏览基类