WPF - Программная привязка к BitmapEffect - PullRequest
5 голосов
/ 13 сентября 2008

Я хотел бы иметь возможность программно связать некоторые данные со свойствами зависимостей на BitmapEffect . В FrameworkElement, таком как TextBlock, есть метод 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 });

Но это не работает.

1 Ответ

11 голосов
/ 13 сентября 2008

Вы можете использовать BindingOperation.SetBinding :

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

Я думаю, что должен делать то, что вы хотите.

...