2010-01-28 31 views
7

Estoy tratando de crear un efecto de reflexión y está funcionando bien, excepto que tengo que codificar algunos valores. Este es mi XAML:XAML, propiedades de Ancho y Altura de enlace a las mismas propiedades de otro control

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="60"/> 
     <RowDefinition /> 
     <RowDefinition Height="80"/> 
    </Grid.RowDefinitions> 
    <StackPanel Grid.Row="1" VerticalAlignment="Center"> 
     <UserControl x:Name="CurrentPresenter" /> 
     <Border Width="500" Height="200" > 
      <Border.Background> 
       <VisualBrush Visual="{Binding ElementName=CurrentPresenter}" > 
        <VisualBrush.Transform> 
         <TransformGroup> 
          <ScaleTransform ScaleX="1" ScaleY="-1" CenterX="500" CenterY="99" /> 
         </TransformGroup> 
        </VisualBrush.Transform> 
       </VisualBrush> 
      </Border.Background> 
      <Border.OpacityMask> 
        <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.6"> 
         <GradientStop Offset="-0.6" Color="Black"></GradientStop> 
         <GradientStop Offset="0.6" Color="Transparent"></GradientStop> 
        </LinearGradientBrush> 
       </Border.OpacityMask> 
     </Border> 
    </StackPanel> 
</Grid> 

He tratado de sustituir de Frontera Width="500" y Height="200" por Width="{Binding ElementName=CurrentPresenter, Path=Width}" y Height="{Binding ElementName=CurrentPresenter, Path=Height}" pero no parece funcionar.

¿Qué problema tiene este código?

ACTUALIZACIÓN: Si fijo Ancho y Altura aquí:

<UserControl x:Name="CurrentPresenter" Height="200" Width="500" /> 

funciona como se esperaba. Sin embargo, no funciona si configuro esos valores en UserControl XAML. ¿Algunas ideas?

+0

Cuando dice que no funciona, ¿qué tipo de comportamiento ve realmente? ¿El borde parece demasiado pequeño, o simplemente sigue estirándose infinitamente (he visto ambos)? – TabbyCool

+0

Se estira para llenar el recipiente. – JAG

+0

Si establece el alto y el ancho en UserControl XAML, ¿el UserControl parece tener el tamaño correcto y es solo el borde el que se extiende, o ambos controles son del tamaño incorrecto? – TabbyCool

Respuesta

16

lugar de ligarse a las propiedades Height y ancho del control de usuario, ¿ha intentado unir los Height y Width propiedades del Border a los ActualHeight y ActualWidth propiedades del control de usuario?

<Border 
Width="{Binding ElementName=CurrentPresenter, Path=ActualWidth}" 
Height="{Binding ElementName=CurrentPresenter, Path=ActualHeight}" > 
+0

Mismo comportamiento. Por favor, eche un vistazo a mi actualización. – JAG

+1

Esta corrección ha guardado algunos pelos grises. Gracias Tabby. –

Cuestiones relacionadas