enlace a la propiedad de ancho en el código detrás

Tengo una situación en la que necesito crear un cuadro de vista con un botón. El xaml para esto es el siguiente: Observe la propiedad Width de viewbox. El ancho debe aumentarse / disminuirse de acuerdo con una barra deslizante (moverse hacia la derecha lo aumenta, hacia la izquierda lo disminuye). Como se enumera a continuación, sé cómo hacerlo en xaml y funciona bien. Pero mi requisito es poder crear viewbox en el código subyacente y asignarle las propiedades.

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

preguntado el 16 de mayo de 11 a las 20:05

2 Respuestas

Esto debería hacer lo que quieras:

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.

contestado el 17 de mayo de 11 a las 00:05

Wow, nunca he visto a nadie usar BindingOperations.SetBinding. - media pensión

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

@HB Así es como lo aprendí y lo que usa el método de instancia bajo el capó. :) - Botz3000

Puede crear el enlace con relativa facilidad en Code Behind:

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

_ScaleButton.SetBinding(FrameworkElement.WidthProperty, widthBinding);

contestado el 17 de mayo de 11 a las 00:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.