2016-05-03 2 views
2

Я бы хотел создать пользовательский элемент управления WPF, не используя инструментарий WPF ... После некоторых поисков кажется, что лучший подход - использовать Expander ... поэтому я хотел просто посмотрите, могу ли я получить некоторые базовые функции, такие как получение строки для расширения вверх, чтобы показать некоторый контент, когда он будет расширен, а затем, чтобы он обрушился и скрыл этот контент. Похоже, это должно быть довольно прямолинейно, но мой расширитель никогда не расширяется. Вот мой основной пример:Расширитель WPF не расширяется

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

ответ

3

Обновите свою RowDefinitions. В настоящее время , в котором находится Expander, имеет жесткую кодировку, чтобы иметь Height из 24. Сделать это Auto.

<Grid.RowDefinitions> 
    <RowDefinition Height="30"></RowDefinition> 
    <RowDefinition Height="Auto"></RowDefinition> 
    <RowDefinition Height="1*"></RowDefinition> 
    <RowDefinition Height="Auto"></RowDefinition> 
</Grid.RowDefinitions> 
Смежные вопросы