2016-05-03 14 views
2

Ich würde gerne eine benutzerdefinierte WPF-Akkordeon-ähnliche Steuerelement ohne WPF-Toolkit erstellen ... Nach einigem Suchen scheint es, als wäre der beste Ansatz, einen Expander zu verwenden ... so wollte ich nur Sehen Sie, ob ich irgendeine Art von grundlegender Funktionalität bekommen könnte, wie zum Beispiel eine Zeile nach oben zu expandieren, um einige Inhalte anzuzeigen, wenn sie erweitert wird, und dann, um den Inhalt zu reduzieren und auszublenden. Es scheint, als sollte es ziemlich geradlinig sein, aber mein Expander expandiert nie. Hier ist mein grundlegendes Beispiel:WPF Expander Not Expanding

<Grid Background="Transparent"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="30"></RowDefinition> 
     <RowDefinition Height="Auto"></RowDefinition> 
     <RowDefinition Height="1*"></RowDefinition> 
     <RowDefinition Height="24"></RowDefinition> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="215"></ColumnDefinition> 
     <ColumnDefinition></ColumnDefinition> 
    </Grid.ColumnDefinitions> 
    <Expander Grid.Row="3" Grid.ColumnSpan="2" Header="More Options" ExpandDirection="Down" Background="Red" IsExpanded="False"> 
     <StackPanel Height="300"> 
      <CheckBox Margin="4" Content="Option 1" /> 
      <CheckBox Margin="4" Content="Option 2" /> 
      <CheckBox Margin="4" Content="Option 3" /> 
     </StackPanel> 
    </Expander> 
</Grid> 

Antwort

3

Aktualisieren Sie Ihre RowDefinitions. Derzeit ist die , die die Expander ist in hart codiert, um eine Height von 24 zu haben. Machen Sie es Auto.

<Grid.RowDefinitions> 
    <RowDefinition Height="30"></RowDefinition> 
    <RowDefinition Height="Auto"></RowDefinition> 
    <RowDefinition Height="1*"></RowDefinition> 
    <RowDefinition Height="Auto"></RowDefinition> 
</Grid.RowDefinitions>