2011-05-16 6 views
5

Tengo una situación en la que necesito crear el cuadro Vista con un botón. El xaml para esto es como a continuación: observe la propiedad Ancho de viewbox. El ancho debe aumentarse/disminuirse según una barra deslizadora (desplazarlo a la derecha lo aumenta, a la izquierda lo disminuye). Como se detalla a continuación, sé cómo hacerlo en xaml y funciona bien. Pero mi requisito es poder crear viewbox en el código y asignarle las propiedades.vinculando a la propiedad de ancho en el código detrás de

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

Gracias.

Respuesta

5

Esto debería hacer lo que quiera:

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

Creo que es 'FrameworkElement.WidthProperty'. – user7116

+0

Wow, nunca he visto a nadie usar 'BindingOperations.SetBinding'. –

+0

Creo que no hace ninguna diferencia, ya que resuelve esa propiedad de todos modos. – Botz3000

4

puede crear la unión con relativa facilidad en el código subyacente:

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

_ScaleButton.SetBinding(FrameworkElement.WidthProperty, widthBinding); 
Cuestiones relacionadas