Язык программирования C#9 и платформа .NET5
Часть 494 из 642 Информация о книге
Панель
(как и ряд других типов панелей) может быть объявлена с указанием значенийWrapPanelиItemWidth, которые управляют стандартным размером каждого элемента. Если подэлемент предоставляет собственные значенияItemHeightи/илиHeight, то он будет позиционироваться относительно размера, установленного для него панелью. Взгляните на следующую разметку:Width<Pagexmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="Fun with Panels!" Height="100" Width="650"><WrapPanel Background="LightSteelBlue" Orientation ="Horizontal"ItemWidth ="200"ItemHeight ="30"><Label x:Name="lblInstruction" FontSize="15" Content="Enter Car Information"/><Label x:Name="lblMake" Content="Make"/><TextBox x:Name="txtMake"/><Label x:Name="lblColor" Content="Color"/><TextBox x:Name="txtColor"/><Label x:Name="lblPetName" Content="Pet Name"/><TextBox x:Name="txtPetName"/><Button x:Name="btnOK" Width ="80" Content="OK"/></WrapPanel></Page>В результате визуализации получается окно, показанное на рис. 25.3 (обратите внимание на размер и позицию элемента управления
, для которого было задано уникальное значениеButton).WidthПосле просмотра рис. 25.3 вы наверняка согласитесь с тем, что панель
— обычно не лучший выбор для организации содержимого непосредственно в окне, поскольку ее элементы могут беспорядочно смешиваться, когда пользователь изменяет размер окна. В большинстве случаевWrapPanelбудет подэлементом панели другого типа, позволяя небольшой области окна переносить свое содержимое при изменении размера (как, например, элемент управленияWrapPanel).ToolBarПозиционирование содержимого внутри панелей StackPanel
Подобно
элемент управленияWrapPanelорганизует содержимое внутри одиночной строки, которая может быть ориентирована горизонтально или вертикально (по умолчанию) в зависимости от значения, присвоенного свойствуStackPanel. Однако отличие между ними заключается в том, чтоOrientationне пытается переносить содержимое при изменении размера окна пользователем. Взамен элементы вStackPanelпросто растягиваются (согласно выбранной ориентации), приспосабливаясь к размеру самой панелиStackPanel. Например, в файлеStackPanelсодержится разметка, которая в результате дает вывод, показанный на рис. 25.4:SimpleStackPanel.xaml<Pagexmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="Fun with Panels!" Height="200" Width="400"><StackPanel Background="LightSteelBlue" Orientation ="Vertical"><Label Name="lblInstruction"FontSize="15" Content="Enter Car Information"/><Label Name="lblMake" Content="Make"/><TextBox Name="txtMake"/><Label Name="lblColor" Content="Color"/><TextBox Name="txtColor"/><Label Name="lblPetName" Content="Pet Name"/><TextBox Name="txtPetName"/><Button Name="btnOK" Width ="80" Content="OK"/></StackPanel></Page>Если присвоить свойству
значениеOrientation, тогда визуализированный вывод станет таким, как на рис. 25.5:Horizontal<StackPanel Background="LightSteelBlue" Orientation="Horizontal">Подобно
панельWrapPanelтоже редко применяется для организации содержимого прямо внутри окна. ПанельStackPanelдолжна использоваться как вложенная панель в какой-нибудь главной панели.StackPanelПозиционирование содержимого внутри панелей Grid
Из всех панелей, предоставляемых API-интерфейсами WPF, панель
является, несомненно, самой гибкой. Аналогично таблице HTML панельGridможет состоять из набора ячеек, каждая из которых имеет свое содержимое. При определенииGridвыполняются перечисленные ниже шаги.Grid


