Элемент управления расширителем Silverlight расширяется неравномерно

#silverlight-toolkit

#silverlight-toolkit

Вопрос:

Я пытаюсь использовать элемент управления Silverlight expander, и при расширении содержимое расширителя изменяется неравномерно по сравнению с остальным содержимым. есть идеи? вот как это выглядит

     <Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <toolkit:Expander ExpandDirection="Right" Grid.Column="0" IsExpanded="True">
        <toolkit:Expander.Header>
            <TextBlock Text="Title" Foreground="Black" />
        </toolkit:Expander.Header>
        <toolkit:Expander.Content>
            <Controls:Grid x:Name="LayoutRoot"  ShowGridLines="True">
                <ContentControl Navigation:ContentArea.AreaName="shellView" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" />
                <ContentControl x:Name="loaderView" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"  />
            </Controls:Grid>
        </toolkit:Expander.Content>
    </toolkit:Expander>
    <ContentControl Grid.Column="1" x:Name="testPage" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" />
</Grid>
  

В результате расширитель отображает около 30% доступной области, но я хочу, чтобы он отображал 50%

Комментарии:

1. можете ли вы показать мне стиль вашего эспандера? Спасибо

2. Я просто использую значение по умолчанию. Если я установлю для стиля значение Style=»{x: Null}», я все равно получу только около 20-30 amp; для расширителя, я думаю, это предустановленный размер.

Ответ №1:

Расширитель находится в столбце № 1 сетки из двух столбцов. Тот факт, что ширина столбца установлена на Auto, а ширина других столбцов равна *, означает, что он займет только необходимое пространство (и предоставление его дочерним элементам выравнивания с растягиванием не отменит этого, поскольку нет фиксированного пространства для расширения).

Простое удаление этого Auto должно устранить вашу проблему и заставить содержимое расширителя заполнить 50% пространства, доступного для корневой сетки:

 <Grid.ColumnDefinitions>
    <ColumnDefinition />
    <ColumnDefinition />
</Grid.ColumnDefinitions>
  

Это эквивалентно предоставлению каждому столбцу одинаковой ширины:

 <Grid.ColumnDefinitions>
    <ColumnDefinition Width="*" />
    <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>