2016-07-29 13 views
0

Ich habe drei Bedienelemente (alle von ihnen sind Datagrids dynamisch erstellt) in meinem Hauptbildschirm enter image description hereGemeinsame Scroll für mehrere Datagrid in einem Bildschirm

Ich versuche, eine einzige Bildlaufleiste für alle drei Datagrids zu bekommen. Die Datagrids werden dynamisch erstellt und können verschiedene Farben haben. Meine Anforderung besagt also, dass alle Datagrids dieselbe Größe haben sollten. Das heißt, wenn Datagrid2 größer ist, sollten andere zwei Datagrids wachsen, um mit der Größe von Datagrid2 übereinzustimmen.

Hier ist wie die grundlegende XAML-Struktur.

<ScrollViewer x:Name="ScrollViewer" 
HorizontalScrollBarVisibility="Auto" 
VerticalScrollBarVisibility="Auto"> 
     <Grid MinWidth="400"> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="Auto" /> 
        <RowDefinition Height="Auto" /> 
        <RowDefinition Height="*" /> 
       </Grid.RowDefinitions> 
<userControl1/> 
<userControl2 Grid.Row="1"/> 
<userControl3 Grid.Row="2"/> 
</Grid> 
</ScrollViewer 

Antwort

0

Dies ist die Art von Sache, wo SharedSizeGroup zur Rettung kommt.

Versuchen Sie etwas wie das;

<ScrollViewer> 
    <Grid MinWidth="400"> 
     <Grid.RowDefinitions> 
     <RowDefinition SharedSizeGroup="A"/> 
     <RowDefinition SharedSizeGroup="A"/> 
     <RowDefinition SharedSizeGroup="A"/> 
     </Grid.RowDefinitions> 

     <userControl1/> 
     <userControl2 Grid.Row="1"/> 
     <userControl3 Grid.Row="2"/> 

    </Grid> 
</ScrollViewer> 
+0

versucht .. Dies ist die Höhe der Zeile teilen auch :( – Peekay

+0

@Peekay Ich dachte, dass dein ganzes Ziel war? Sprechen Sie über nur die Spalten jeder Datenraster mit verbrauchen volle Breite? Wenn das der Fall ist setze sie einfach auf Stretch und füge 'Width =" * "' zu jeder Spalte hinzu. Ich muss etwas hier vermissen.:/ –

+0

Yup ich suche nur nach der Breite. sorry wenn meine Frage nicht klar genug ist Breite = "*" – Peekay