2010-01-28 4 views
7

Ich versuche, einen Reflexionseffekt zu erstellen und es funktioniert gut, außer dass ich einige Werte fest codieren muss. Das ist mein XAML:XAML, verbindliche Breite und Höhe Eigenschaften zu den gleichen Eigenschaften der anderen Kontrolle

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

Ich habe versucht Border Width="500" und Height="200" von Width="{Binding ElementName=CurrentPresenter, Path=Width}" und Height="{Binding ElementName=CurrentPresenter, Path=Height}" ist zu ersetzen, aber es scheint nicht zu funktionieren.

Was ist mit diesem Code falsch?

UPDATE: Wenn ich die Breite und Höhe hier eingestellt:

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

Es funktioniert wie erwartet. Es funktioniert jedoch nicht, wenn ich diese Werte in UserControl XAML festlege. Irgendwelche Ideen?

+0

Wenn Sie sagen, dass es nicht funktioniert, welche Art von Verhalten sehen Sie tatsächlich? Erscheint der Rand zu klein oder hält er sich einfach unendlich weiter (ich habe beide gesehen). – TabbyCool

+0

Es erstreckt sich, um den Consatiner zu füllen. – JAG

+0

Wenn Sie die Höhe und Breite in UserControl XAML festlegen, scheint das UserControl die richtige Größe zu sein und es ist nur die Grenze, die sich ausdehnt, oder haben beide Steuerelemente die falsche Größe? – TabbyCool

Antwort

16

Anstatt binden an die Höhe und Breite Eigenschaften des Usercontrol, haben Sie die Height und Width Eigenschaften des Border den ActualHeight und ActualWidth Eigenschaften des Usercontrol-Bindung versucht?

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

Gleiches Verhalten. Bitte sehen Sie sich mein Update an. – JAG

+1

Dieser Fix speicherte einige graue Haare. Danke, Tabby. –

Verwandte Themen