C# 代码隐藏(WPF)中的绑定不透明度属性
因此,我需要在代码隐藏中创建一些控件,并使用ImageBrush添加了背景绑定(我还使用了自定义转换器) 它可以工作,但是如果我想对不透明属性做同样的绑定,比如: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")
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