Пожалуй, наилучшим применением типа Canvas
Canvas в главе 26 при обсуждении служб визуализации графики WPF.Позиционирование содержимого внутри панелей WrapPanel
Панель WrapPanel
WrapPanel их координаты верхнего левого и правого нижнего углов не указываются, как обычно делается в Canvas. Однако для каждого подэлемента допускается определение значений свойств Height и Width (наряду с другими свойствами), чтобы управлять их общим размером в контейнере.Поскольку содержимое внутри WrapPanel
SimpleWrapPanel.xaml находится следующая разметка (заключенная внутрь определения Page):
FontSize="15" Content="Enter Car
Information"/>
Когда эта разметка загружена, при изменении ширины окна содержимое выглядит не особо привлекательно, т.к. оно перетекает слева направо внутри окна (рис. 25.2).
По умолчанию содержимое WrapPanel
Orientation на Vertical, то можно заставить содержимое перетекать сверху вниз:Панель WrapPanel
ItemWidth и ItemHeight, которые управляют стандартным размером каждого элемента. Если подэлемент предоставляет собственные значения Height и/или Width, то он будет позиционироваться относительно размера, установленного для него панелью. Взгляните на следующую разметку: xmlns="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">
ItemWidth ="200"
ItemHeight ="30">
В результате визуализации получается окно, показанное на рис. 25.3 (обратите внимание на размер и позицию элемента управления Button
Width).После просмотра рис. 25.3 вы наверняка согласитесь с тем, что панель WrapPanel
WrapPanel будет подэлементом панели другого типа, позволяя небольшой области окна переносить свое содержимое при изменении размера (как, например, элемент управления ToolBar).Позиционирование содержимого внутри панелей StackPanel
Подобно WrapPanel
StackPanel организует содержимое внутри одиночной строки, которая может быть ориентирована горизонтально или вертикально (по умолчанию) в зависимости от значения, присвоенного свойству Orientation. Однако отличие между ними заключается в том, что StackPanel не пытается переносить содержимое при изменении размера окна пользователем. Взамен элементы в StackPanel просто растягиваются (согласно выбранной ориентации), приспосабливаясь к размеру самой панели StackPanel. Например, в файле SimpleStackPanel.xaml содержится разметка, которая в результате дает вывод, показанный на рис. 25.4: xmlns="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">
FontSize="15" Content="Enter Car Information"/>
Если присвоить свойству Orientation
Horizontal, тогда визуализированный вывод станет таким, как на рис. 25.5:Подобно WrapPanel
StackPanel тоже редко применяется для организации содержимого прямо внутри окна. Панель StackPanel должна использоваться как вложенная панель в какой-нибудь главной панели.Позиционирование содержимого внутри панелей Grid
Бьёрн Страуструп , Ирина Сергеевна Козлова , Бьерн Страуструп , Валерий Федорович Альмухаметов
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT