2011-01-03 8 views
1

Ich habe Expander-Steuerelement in der Gitterreihe. Und ich ändere die Expandergröße auf dem Expanderknopf, um die Expandergröße zu maximieren. Und auf den Kollapsstatus minimiere ich die Expandergröße. Das Problem ist, dass der Expander unter der Rasterzeile expandiert. Gibt es eine Möglichkeit, den Expander auf ein beliebiges Steuerelement zu erweitern?WPF Expander erweitern hinter der Gitterreihe

<Grid AllowDrop="False"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="199*" /> 
     <RowDefinition Height="175*" /> 
    </Grid.RowDefinitions> 
    <Grid Height="60" HorizontalAlignment="Left" Margin="21,26,0,0" Name="grid1" VerticalAlignment="Top" Width="550" Background="#FFE59E9E"> 
     <Label Content="Label" Height="28" HorizontalAlignment="Left" Margin="62,113,0,0" Name="label1" VerticalAlignment="Top" /> 
     <TextBox Height="23" HorizontalAlignment="Left" Margin="130,115,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" Background="#FF2B1313" /> 
    </Grid> 
    <Expander Name="exp" Expanded="exp_Expanded" Background="#FF3383A7" BorderThickness="4" BorderBrush="{x:Null}" FlowDirection="LeftToRight" Collapsed="exp_Collapsed" ExpandDirection="Left" Height="49" VerticalAlignment="Top" HorizontalAlignment="Right" Width="602" Margin="0,139,237,0"> 
     <DataGrid AutoGenerateColumns="False" Height="105" Name="dataGrid1" Width="200" HorizontalContentAlignment="Center" VerticalAlignment="Center" /> 
    </Expander> 
</Grid> 


    private void exp_Expanded(object sender, RoutedEventArgs e) 
    { 
     var exp = (Expander) sender; 
     //grid1.Width = 550; 
     // grid1.Height = 40; 

      exp.Width = 602; 
     exp.Height = 300; 


    } 

    private void exp_Collapsed(object sender, RoutedEventArgs e) 
    { 
     var exp = (Expander)sender; 

     // grid1.Height = 500; 
     exp.Width = 602; 
     exp.Height = 49; 



    } 

Antwort

2

Dies ist, weil Sie Grid.RowDefinition für Sie Grid-Steuerung und didnt setzen die Grid.Row Eigenschaft für Kinder

steuert

wenn nicht den Code unten erforderlich entfernen in Sie XAML

<Grid.RowDefinitions> 
    <RowDefinition Height="199*" /> 
    <RowDefinition Height="175*" /> 
</Grid.RowDefinitions> 

oder

gesetzt haben

Hinzufügen Grid.RowSpan Eigenschaft für Ihren Expander

<Expander Grid.RowSpan="2" Name="exp" Expanded="exp_Expanded"... 

Sie WPF Tutorial for Grid Panel, um weitere Informationen, wie man Zeilen und Spalten für Grid-Panel überprüfen

Verwandte Themen