Расположение элементов управления очень важно и важно для удобства использования приложения. Он используется для организации группы элементов GUI в вашем приложении. Есть некоторые важные вещи, которые следует учитывать при выборе макетов панелей. Они —
- Позиции дочерних элементов.
- Размеры дочерних элементов.
- Наслаивание перекрывающихся дочерних элементов друг на друга.
Фиксированное расположение элементов управления в пикселях не работает, если приложение использовалось на разных разрешениях экрана. XAML предоставляет богатый набор встроенных панелей макета для правильного размещения элементов графического интерфейса.
Мы начнем с рассмотрения простых фиксированных макетов. Затем мы рассмотрим сценарии динамической компоновки, которые Silverlight разработала для поддержки. Мы увидим связанные с макетом свойства и концепции, которые пронизывают все элементы пользовательского интерфейса.
Фиксированный макет
Простейший вид макета предлагает элемент Canvas . Панель « Холст» — это базовая панель макета, в которой дочерние элементы можно расположить явно, используя координаты, относящиеся к любой стороне холста, например, слева, справа, сверху и снизу.
Обычно Canvas используется для 2D-графических элементов (таких как Ellipse, Rectangle и т. Д.). Он не используется для элементов пользовательского интерфейса, поскольку при указании абсолютных координат возникают проблемы при изменении размера, локализации или масштабировании приложения XAML.
Ниже приведены наиболее часто используемые свойства класса Canvas .
Старший | Описание недвижимости |
---|---|
1 |
Фон Получает или задает кисть, которая заполняет область содержимого панели. (Унаследовано от Panel) |
2 |
Дети Получает UIElementCollection дочерних элементов этой панели. (Унаследовано от Panel.) |
3 |
Рост Получает или задает предлагаемую высоту элемента. (Унаследовано от FrameworkElement.) |
4 |
ItemHeight Получает или задает значение, которое определяет высоту всех элементов, содержащихся в WrapPanel. |
5 |
ItemWidth Получает или задает значение, которое определяет ширину всех элементов, содержащихся в WrapPanel. |
6 |
LogicalChildren Получает перечислитель, который может перебирать логические дочерние элементы этого элемента Panel. (Унаследовано от Panel.) |
7 |
LogicalOrientation Ориентация панели, если панель поддерживает макет только в одном измерении. (Унаследовано от Panel.) |
8 |
LeftProperty Идентифицирует присоединенное свойство Canvas.Left XAML. |
9 |
Поле Получает или задает внешнее поле элемента. (Унаследовано от FrameworkElement.) |
10 |
название Получает или задает идентифицирующее имя элемента. Имя обеспечивает ссылку, так что выделенный код, такой как код обработчика события, может ссылаться на элемент разметки после того, как он создан во время обработки процессором XAML. (Унаследовано от FrameworkElement.) |
11 |
ориентация Получает или задает значение, указывающее измерение, в котором размещается дочерний контент. |
12 |
родитель Получает логический родительский элемент этого элемента. (Унаследовано от FrameworkElement.) |
13 |
Ресурсы Получает или задает локально определенный словарь ресурсов. (Унаследовано от FrameworkElement.) |
14 |
Стиль Получает или задает стиль, используемый этим элементом при его отображении. (Унаследовано от FrameworkElement.) |
15 |
TopProperty Идентифицирует присоединенное свойство Canvas.Top XAML. |
16 |
ширина Получает или задает ширину элемента. (Унаследовано от FrameworkElement.) |
17 |
ZIndexProperty Идентифицирует присоединенное свойство Canvas.ZIndex XAML. |
Фон
Получает или задает кисть, которая заполняет область содержимого панели. (Унаследовано от Panel)
Дети
Получает UIElementCollection дочерних элементов этой панели. (Унаследовано от Panel.)
Рост
Получает или задает предлагаемую высоту элемента. (Унаследовано от FrameworkElement.)
ItemHeight
Получает или задает значение, которое определяет высоту всех элементов, содержащихся в WrapPanel.
ItemWidth
Получает или задает значение, которое определяет ширину всех элементов, содержащихся в WrapPanel.
LogicalChildren
Получает перечислитель, который может перебирать логические дочерние элементы этого элемента Panel. (Унаследовано от Panel.)
LogicalOrientation
Ориентация панели, если панель поддерживает макет только в одном измерении. (Унаследовано от Panel.)
LeftProperty
Идентифицирует присоединенное свойство Canvas.Left XAML.
Поле
Получает или задает внешнее поле элемента. (Унаследовано от FrameworkElement.)
название
Получает или задает идентифицирующее имя элемента. Имя обеспечивает ссылку, так что выделенный код, такой как код обработчика события, может ссылаться на элемент разметки после того, как он создан во время обработки процессором XAML. (Унаследовано от FrameworkElement.)
ориентация
Получает или задает значение, указывающее измерение, в котором размещается дочерний контент.
родитель
Получает логический родительский элемент этого элемента. (Унаследовано от FrameworkElement.)
Ресурсы
Получает или задает локально определенный словарь ресурсов. (Унаследовано от FrameworkElement.)
Стиль
Получает или задает стиль, используемый этим элементом при его отображении. (Унаследовано от FrameworkElement.)
TopProperty
Идентифицирует присоединенное свойство Canvas.Top XAML.
ширина
Получает или задает ширину элемента. (Унаследовано от FrameworkElement.)
ZIndexProperty
Идентифицирует присоединенное свойство Canvas.ZIndex XAML.
Ниже приведены наиболее часто используемые методы Canvas .
Старший | Метод и описание |
---|---|
1 |
GetLeft Получает значение вложенного свойства Canvas.Left XAML для целевого элемента. |
2 |
GetTop Получает значение вложенного свойства Canvas.Top XAML для целевого элемента. |
3 |
GetZIndex Получает значение вложенного свойства Canvas.ZIndex XAML для целевого элемента. |
4 |
SetLeft Устанавливает значение вложенного свойства Canvas.Left XAML для целевого элемента. |
5 |
SetTop Устанавливает значение вложенного свойства Canvas.Top XAML для целевого элемента. |
6 |
SetZIndex Устанавливает значение вложенного свойства Canvas.ZIndex XAML для целевого элемента. |
GetLeft
Получает значение вложенного свойства Canvas.Left XAML для целевого элемента.
GetTop
Получает значение вложенного свойства Canvas.Top XAML для целевого элемента.
GetZIndex
Получает значение вложенного свойства Canvas.ZIndex XAML для целевого элемента.
SetLeft
Устанавливает значение вложенного свойства Canvas.Left XAML для целевого элемента.
SetTop
Устанавливает значение вложенного свойства Canvas.Top XAML для целевого элемента.
SetZIndex
Устанавливает значение вложенного свойства Canvas.ZIndex XAML для целевого элемента.
В следующем примере показано, как добавить дочерние элементы в Canvas . Ниже приведена реализация XAML, в которой эллипс создается внутри Canvas с различными свойствами смещения.
<UserControl x:Class = "FirstExample.MainPage" xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable = "d" d:DesignHeight = "300" d:DesignWidth = "400"> <Grid x:Name = "LayoutRoot" Background = "White"> <Canvas Width = "380" Height = "280" > <Ellipse Canvas.Left = "30" Canvas.Top = "30" Fill = "Gray" Width = "200" Height = "120" /> </Canvas> </Grid> </UserControl>
Когда приведенный выше код скомпилирован и выполнен, вы увидите следующий вывод.