5

我希望能够以编程方式将一些数据绑定到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 });

但它不起作用。

4

1 回答 1

11

您可以使用BindingOperation.SetBinding

Binding newBinding = new Binding();
newBinding.ElementName = "SomeObject";
newBinding.Path = new PropertyPath(SomeObjectType.SomeProperty);
BindingOperations.SetBinding(MyGlow, OuterGlowBitmapEffect.GlowSizeProperty, newBinding);

我认为这应该做你想要的。

于 2008-09-13T09:16:15.607 回答