Программирование >>  Программирование с использованием ajax 

1 ... 361 362 363 [ 364 ] 365 366 367 ... 396


НЫЙ увеличиваться в размере при достижении Grid общей ширины, превышающей 550 пикселей. Чтобы разобраться в этом самостоятельно, попробуйте догадаться, сколько пикселей доступно для столбцов и как они распределяются. Сначала 50 пикселей выделяется третьему столбцу, а 500 остается остальным столбцам. Максимальная ширина третьего столбца составляет 100 пикселей, оставляя на пространство между первым и четвертым столбцом 400 пикселей. Максимальная ширина первого столбца составляет 200 пикселей, так что даже в случае превышения этого значения, большего количества пространства он все равно занимать не будет. Вместо этого в размере будет увеличиваться четвертый столбец.

Обратите внимание на два дополнительных момента в этом примере: во-первых, последний определенный эллипс захватывает третий и четвертый столбец, иллюстрируя тем самым действие свойства Grid.ColumnSpan, а, во-вторых, для обеспечения возможности изменять размер первого и второго столбца предоставляется элемент управления GridSplitter. При превышении элементом управления Grid 550 пикселей по общей ширине, однако, этот элемент управления GridSplitter не сможет позволять изменять размер этих столбцов, потому что ни первый, ни второй столбец не сможет увеличиваться в размерах.

Элемент управления GridSplitter является очень полезным, но имеет довольно скучный внешний вид. Для извлечения из него максимальной пользы его действительно лучше подвергать стилизации или хотя бы делать невидимым, устанавливая его свойство Background в Transparent.

При наличии нескольких элементов управления Grid в окне можно еще определять для строк или столбцов группы общего размера за счет использования в их определениях свойства SharesizeGroup и установки для него в качестве значения предпочитаемого строкового идентификатора. Например, в случае изменения входящего в группу общего размера столбца в одном элементе управления Grid, размер столбца, входящего в эту же группу в другом элементе управления Grid, будет изменяться соответствующим ему образом. Включать и отключать эту функциональную возможность можно с помощью свойства Grid. IsSharedSizeScope.

Элемент управления StackPanel

Элемент управления StackPanel по сравнению со сложным Grid является относительно простым. Его можно считать своего рода усеченной версией элемента управления DockPanel, когда край, к которому пристыковываются дочерние элементы управления, становится для них фиксированным. Другое отличие между этими элементами управления состоит в том, что последний дочерний элемент в StackPanel не занимает оставшееся пространство. Однако по умолчанию все дочерние элементы растягиваются до краев элемента управления StackPanel.

За направление, в котором располагаются элементы управления, отвечают три свойства: Orientation, HorizontalAlignment и VerticalAlignement. Для свойства Orientation может устанавливаться либо значение Horizontal, либо значение Vertical. А свойства HorizontalAlignment и VerticalAlignement позволяют указывать, как должны размещаться дочерние элементы: вдоль верхнего, нижнего, левого или правого края элемента управления StackPanel. Устанавливая для того или иного из них значения Center, можно даже размещать дочерние элементы по центру StackPanel.

На рис. 34.14 показаны два элемента управления StackPanel, в каждом из которых содержится по три кнопки. Для их размещения используется элемент управления Grid с двумя строками и одним столбцом.



Рис. 34.14. Пример использования элементов управления StackPanel

Код, необходимый для реализации этих элементов управления StackPanel, выглядит следующим образом:

<Grid Background= AliceBlue > <Grid.RowDefinitions>

<RowDefinition />

<RowDefinition /> </Grid.RowDefinitions> <StackPanel Grid.Row= 0 >

<Button>Buttonl</Button>

<Button>Button2</Button>

<Button>Button3</Button> </StackPanel>

<StackPanel Grid.Row= l Orientation= Horizontal >

<Button>Buttonl</Button>

<Button>Button2</Button>

<Button>Button3</Button> </StackPanel> </Grid>

При использовании для компоновки элемента управления StackPanel зачастую требуется добавлять линейки прокрутки для обеспечения возможности просматривать все содержащиеся в нем элементы управления. Эта область является еще одной из тех, где WPF выполняет большую часть трудной работы вместо разработчика. В частности, для решения этой задачи WPF позволяет использовать элемент управления ScrollViewer путем размещения элемента управления StackPanel внутри него:

<Grid Background= AliceBlue > <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <ScrollViewer>

<StackPanel Grid.Row= 0 > <Button>Buttonl</Button> <Button>Button2</Button> <Button>Button3</Button> </StackPanel> </ScrollViewer>

<StackPanel Grid.Row= l Orientation= Horizontal >

<Button>Buttonl</Button>

<Button>Button2</Button>

<Button>Button3</Button> </StackPanel> </Grid>



Существуют и другие более сложные приемы, которые можно применять для обеспечения различных способов прокручивания или программной реализации прокручивания, но обычно вполне хватает и этого.

Элемент управления ШарРапе!

Элемент управления WrapPanel, по сути, является расширенной версией элемента StackPanel, в которой не умещающиеся элементы управления переносятся на дополнительные строки (или в дополнительные столбцы). На рис. 34.15 показан элемент управления WrapPanel, содержащий множество фигур и отображающийся в окнах двух разных размеров.

17 WrapPAiMi

Рис. 34.15. пример элемента управления WrapPanel

Ниже приведена сокращенная версия кода, необходимого для реализации такого элемента управления WrapPanel:

<WrapPanel Background= AliceBlue > <Rectangle Fill= #FFOOOOOO Height= 50 Width= 50 Stroke= Black

RadiusX= 10 RadiusY= 10 /> <Rectangle Fill= #FFllllll Height= 50 Width= 50 Stroke= Black

RadiusX= 10 RadiusY= 10 /> <Rectangle Fill= #FF222222 Height= 50 Width= 50 Stroke= Black

RadiusX= 10 RadiusY= 10 />

<Rectangle Fill= #FFFFFFFF Height= 50 Width= 50 Stroke= Black RadiusX= 10 RadiusY= 10 /> </WrapPanel>

Элементы управления WrapPanel представляют собой замечательный способ для создания динамических схем компоновки, позволяющих пользователям самим управлять тем, каким точно образом им просматривать содержимое.

Стилизация элементов управления

Одной из наилучших функциональных возможностей WPF является предоставление дизайнерам полного контроля над внешним видом и поведением пользовательских интерфейсов. Это подразумевает, главным образом, предоставление им возможности придавать элементам управления любой желаемый стиль в двух или даже трех измерениях. Пока что для элементов управления применялись только базовые стили, поставляемые с .NET 3.5, но на самом деле количество возможных вариантов просто бесконечно.



1 ... 361 362 363 [ 364 ] 365 366 367 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика