2008-09-12 3 views
5

에 바인딩 나는 BitmapEffect 사용프로그램 바인드에 종속성 속성에 일부 데이터를 수 있도록하고 싶습니다. TextBlock이 같은 FrameworkElement으로이 당신이 좋아하는 이러한 바인딩을 프로그래밍 할 수있는 SetBinding 방법입니다 :- 프로그래밍이 BitmapEffect 사용

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

와 나는 (아래와 같이)

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

당신이 바로 XAML에 그것을 할 수있어하지만 BitmapEffect에는 SetBinding 메서드가 없기 때문에 C#으로이 작업을 수행하는 방법을 알 수 없습니다.

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

을하지만 그것은 작동하지 않습니다

은 내가 시도했습니다.

답변

11

당신은 BindingOperation.SetBinding를 사용할 수 있습니다

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

난 그게 당신이 원하는 일을한다고 생각합니다.