C# 代码隐藏(WPF)中的绑定不透明度属性

C# 代码隐藏(WPF)中的绑定不透明度属性,c#,wpf,C#,Wpf,因此,我需要在代码隐藏中创建一些控件,并使用ImageBrush添加了背景绑定(我还使用了自定义转换器) 它可以工作,但是如果我想对不透明属性做同样的绑定,比如: double opacity = 1.0; var control = new TextBlock { DataContext = item.Element, Opacity = opacity }; var opacityBinding = new Binding("IsGhost.Value")

因此,我需要在代码隐藏中创建一些控件,并使用ImageBrush添加了背景绑定(我还使用了自定义转换器)

它可以工作,但是如果我想对不透明属性做同样的绑定,比如:

double opacity = 1.0;
var control = new TextBlock
{
    DataContext = item.Element,
    Opacity = opacity
};
var opacityBinding = new Binding("IsGhost.Value") { Converter = boolToOpacityConverter };
BindingOperations.SetBinding(opacity, OpacityProperty, opacityBinding);
最后一行显示一个错误:

CS1503: Argument 1: cannot convert from 'double' to 'System.Windows.DependencyObject'
我试图改变

double opacity = 1.0;

但给出错误的一行是

Opacity = opacity
这一次它无法将“System.Windows.DependencyObject”转换为“double”。那我该怎么办


编辑:我按照评论中的说明进行操作,效果很好,谢谢

您需要传递将属性作为绑定目标的对象:
BindingOperations.SetBinding(控件,TextBlock.OpacityProperty,opacityBinding)代码中的
不透明度
变量只是一条红鲱鱼;您最好甚至不使用该变量,直接在对象初始值设定项中指定值
1.0
,或者只指定
control.SetBinding(TextBlock.OpacityProperty,opacityBinding)
DependencyObject opacity = new DependencyObject();
Opacity = opacity