2011-05-03 46 views
23

Tengo dos bordes con contenido, el segundo ancho de borde cambia según en el contenido, estoy tratando de enlazar el primer borde con el segundo ancho pero no funciona y no estoy seguro lo que me estoy perdiendo ¿Puede alguien darme alguna dirección, por favor? A continuación se muestra un ejemplo de lo que estoy intentando actualmente.wpf ancho de control vinculante

<Border x:Name="border1" Width="{Binding Path=Width, ElementName=border2}"> 
    ... 
</Border> 

<Border x:Name="border2"> 
    ... 
</Border> 

Respuesta

34

Cambia la ruta de acceso a ActualWidth.

+0

Gracias. Busqué ActualWidth y encontré este enlace. http://stackoverflow.com/q/607827/684042 tiene sentido para mí ahora. Gracias. – Terco

1

¡cambie la ruta de acceso a ViewportWidth también!

<Grid x:Name="mainGrid"> 
//and some elements exist there 
    <Grid> 
    <Border x:Name="border_btn" Width="{Binding ElementName=root ,Path=ViewportWidth, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/> 
    </Grid> 
</Grid> 

uso ViewportWidth en lugar de ActualWidth porque en este caso siempre se muestra ActualWidth 0! para probar este problema, puede probar esto con esta línea en su xaml.

<TextBlock Text="{Binding ElementName=mainGrid, Path=ActualWidth ,Mode=TwoWay}" Foreground="Red"/> 
+0

@Bart es una respuesta, ¡no es un comentario! – FatemehEbrahimiNik

+0

Ya hay una respuesta aceptada en una pregunta de 5 años, si cree que su respuesta es mejor, debería ser más descriptiva que 5 palabras y explicar por qué la suya es mejor. – Bart

+0

@Bart Explico mi código Sr. – FatemehEbrahimiNik