У меня странная проблема.
Здесь ситуация. У меня есть ListView
с пользовательским определенным GroupStyle
, чтобы данные отображались в Expander
с, в котором есть WrapPanel
, содержащий StackPanels
(который содержит один ToggleButton + один пользовательский элемент управления)
Пользовательский элемент управления в StackPanel
не отображается по умолчанию и становится видимым, когда установлен флажок ToggleButton
.
Однако, когда я проверяю ToggleButton
, появляется пользовательский элемент управления, и все остальные элементы управления, расположенные на той же строке, перемещаются в вертикальный центр.
В идеале я хотел бы, чтобы эти другие участники оставались на вершине. Я пытался установить VerticalAlignment="Top"
везде, где мог, он все равно не меняется.
Проблема с изображением:
Исходное состояние расширителя:
После нажатия ToggleButton
происходит следующее:
Как видите, кнопка «Анализ теста» перемещена, чтобы остаться в центре. Я хочу, чтобы он оставался в том же месте, что и оригинал.
Более того, я определил все эти стили в отдельных DataTemplate
объектах.
Вот небольшой код (я только что удалил то, что здесь бесполезно для проблемы, не заставит вас читать тонны XAML-кода :)):
Свойство содержимого модуля расширения:
<Expander.Content>
<WrapPanel Background="White" VerticalAlignment="Top">
<ItemsPresenter VerticalAlignment="Top"/>
</WrapPanel>
</Expander.Content>
Список ItemsPanel
:
<ItemsPanelTemplate >
<WrapPanel
Width="{Binding (FrameworkElement.ActualWidth),
RelativeSource={RelativeSource
AncestorType=Expander}}"
ItemWidth="{Binding (ListView.View).ItemWidth,
RelativeSource={RelativeSource AncestorType=ListView}}"
ItemHeight="{Binding (ListView.View).ItemHeight,
RelativeSource={RelativeSource AncestorType=ListView}}" />
</ItemsPanelTemplate>
Список ItemsTemplate
:
<StackPanel Orientation="Vertical" Height="Auto" Width="Auto" VerticalAlignment="Top" >
<ToggleButton BorderBrush="{x:Null}" Background="{x:Null}" IsChecked="{Binding Value.IsToLaunch, Mode=TwoWay}"
Command="{Binding DataContext.UpdateGroupCheckingsCommand,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type UserControl}}}">
<Grid Background="Transparent">
<!-- Blah blah blah about the ToggleButton's content -->
</Grid>
</ToggleButton>
<my:UcReleaseChooser>
<!-- Blah blah blah about being visible if ToggleButton is Checked -->
</my:UcReleaseChooser>
</StackPanel>