У меня полноэкранное приложение WPF, которое должно «адаптироваться» к различным разрешениям экрана, что означает, что макет в основном определяется настройкой VerticalAlignment
и HorizontaAlignment
соответствующим образом и игрой с Margin
.
Теперь на моем макете у меня есть DockPanel
с несколькими Expander
элементами управления внутри, расширяющимися по горизонтали.Мой ожидаемый результат будет похож на оригинальную Панель управления Xbox 360 , но проблема в следующем: ширина области содержимого для Expander
, очевидно, зависит от размера, который занимает содержимое внутри.Мне нужно, чтобы элемент управления полностью расширился до конца экрана, оставляя только место для оставшихся Expander
элементов управления (как на изображении в ссылке выше).
Пример содержимого Expander
is:
<ListBox x:Name="lbDocentes" Margin="30,30,30,30" BorderThickness="0" ScrollViewer.VerticalScrollBarVisibility="Hidden" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Background="Transparent">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel x:Name="wrapPanel" IsItemsHost="True" ItemHeight="170" ItemWidth="340" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
Этот Listbox
должен растягиваться, чтобы заполнить все доступное пространство.
Мой текущий обходной путь использует файл codebehind .cs: я проверяю разрешение экрана, вычитаюколичество, необходимое для заголовков расширителя, а затем используйте Width="{Binding Path=ControlWidth}"
в файле XAML, что не является элегантным решением.
Мне нужно как-то установить ширину для элемента управления, чтобы я мог сказать, что это содержимоерастянуть на доступное пространство.Любые идеи о том, как я мог бы сделать это только в коде XAML?
Спасибо!