Pergunta

Eu gostaria de ser capaz de programaticamente vincular alguns dados para as propriedades de dependência em um BitmapEffect.Com um FrameworkElement como TextBlock há métodos setbinding um método onde você pode programaticamente fazer essas ligações como:

myTextBlock.SetBinding(TextBlock.TextProperty, new Binding("SomeProperty"));

E eu sei que você pode fazê-lo em linha reta XAML (como visto abaixo)

<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>

Mas eu não consigo descobrir como fazer isso com C# porque BitmapEffect não tem métodos setbinding método.

Eu tentei:

myTextBlock.SetBinding(OuterGlowBitmapEffect.GlowSize, new Binding("SomeProperty") { Source = someObject });

Mas ele não funciona.

Foi útil?

Solução

Você pode usar BindingOperation.Métodos setbinding:

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

Eu acho que deve fazer o que você quer.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top