2011-05-16 67 views
5

我有一种情况,我需要用一个按钮创建视图框。这个xaml如下所示:请观察viewbox的Width属性。宽度应根据滑动条增加/减少(向右移动增加,向左减小)。如下所列,我知道如何在xaml中做到这一点,它工作正常。但我的要求是能够在后面的代码中创建视图框并为其分配属性。绑定到代码后面的宽度属性

<WrapPanel x:Name="_wrpImageButtons" Grid.IsSharedSizeScope="True" 
      ScrollViewer.CanContentScroll="True" d:LayoutOverrides="Height" 
      Margin="5"> 
    <Viewbox x:Name="_ScaleButton" 
      Width="{Binding Value, ElementName=ZoomSlider}" Stretch="Fill"> 
     <CustomButton:_uscVCARSImagesButton x:Name="_btnImage1"/> 
    </Viewbox> 
</WrapPanel> 

谢谢。

回答

5

这应该做你想要什么:

Viewbox x = new Viewbox(); 
Binding bnd = new Binding("Value") { ElementName = "ZoomSlider"}; 
BindingOperations.SetBinding(x, Viewbox.WidthProperty, bnd); 
// ... Code to insert the Viewbox into the WrapPanel etc. 
+0

我相信这是'FrameworkElement.WidthProperty'。 – user7116 2011-05-16 20:36:10

+0

哇,我从来没有见过任何人使用'BindingOperations.SetBinding'。 – 2011-05-16 20:36:53

+0

我相信它没有任何区别,因为无论如何它都会解决该属性。 – Botz3000 2011-05-16 20:37:32

4

您可以在代码中创建后面比较容易的结合:

var widthBinding = new Binding("Value") { ElementName = "ZoomSlider" }; 

_ScaleButton.SetBinding(FrameworkElement.WidthProperty, widthBinding); 
相关问题