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