WPF-位图效果上的程序化绑定
时间:2020-03-05 18:52:32 来源:igfitidea点击:
我希望能够以编程方式将某些数据绑定到BitmapEffect上的依赖项属性。使用诸如TextBlock之类的FrameworkElement,有一个SetBinding方法,我们可以在其中以编程方式执行以下绑定:
myTextBlock.SetBinding(TextBlock.TextProperty, new Binding("SomeProperty"));
而且我知道我们可以在直接XAML中完成此操作(如下所示)
<TextBlock Width="Auto" Text="Some Content" x:Name="MyTextBlock" TextWrapping="Wrap" > <TextBlock.BitmapEffect> <BitmapEffectGroup> <OuterGlowBitmapEffect x:Name="MyGlow" GlowColor="White" GlowSize="{Binding Path=MyValue}" /> </BitmapEffectGroup> </TextBlock.BitmapEffect> </TextBlock>
但是我无法弄清楚如何用C完成此操作,因为BitmapEffect没有SetBinding方法。
我试过了:
myTextBlock.SetBinding(OuterGlowBitmapEffect.GlowSize, new Binding("SomeProperty") { Source = someObject });
但这是行不通的。
解决方案
回答
我们可以使用BindingOperation.SetBinding:
Binding newBinding = new Binding(); newBinding.ElementName = "SomeObject"; newBinding.Path = new PropertyPath(SomeObjectType.SomeProperty); BindingOperations.SetBinding(MyGlow, OuterGlowBitmapEffect.GlowSizeProperty, newBinding);
我认为这应该做我们想要的。