Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Wpf-АК11.doc
Скачиваний:
6
Добавлен:
01.03.2025
Размер:
3 Мб
Скачать
☆

2. Новые возможности wpf

В платформе WPF корпорация Microsoft предлагает разработчикам и дизайнерам несколько элементов управления макета.

В даной работе будет рассмотрено следующие элементах:

  • Canvas

  • StackPanel

  • WrapPanel

  • DockPanel

  • Grid

Cвойства Margin.Свойство Margin выполняет исключительно важную роль. С его помощью можно задавать поля вокруг текущего элемента управления (то есть элемента, для которого задается свойство Margin). В WPF предусмотрен объект ValueConverter, который принимает строку в формате «5,5,5,5». Строка Margin определяет левое, верхнее, правое и нижнее поля. Это один из трех перегруженных конструкторов класса со странным именем Thickness, который используется при задании свойства Margin в коде программной части.

3. Элемент управления Canvas

Canvas— один из удобнейших элементов управления макета. Это простой контейнер положений X и Y. Чтобы располагаться в родительском элементе Canvas, каждый из его дочерних элементов должен задавать следующие четыре свойства:

  • Canvas.Left

  • Canvas.Right

  • Canvas.Top

  • Canvas.Bottom

Если эти четыре свойства заданы, элемент управления будет располагаться в родительском элементе управления Canvas с учетом этих значений.

Canvas — простой контейнер положений X и Y. Cвойство под названием Canvas.ZIndex определяет, какой элемент управления должен находиться сверху. Как правило, чем больше значение Canvas.ZIndex, тем выше элемент управления, который задает это присоединенное свойство зависимости. Если свойство Canvas.ZIndex не задано ни для одного дочернего элемента, оно будет задаваться в порядке добавления дочерних элементов в элемент Canvas.

На рис. 3.1 показан элемент управления Canvas с двумя дочерними элементами, один над другим.

Рис. 3.1 - Элемент управления Canvas

Пример кода XAML:

<Window

   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

   x:Class="WPF_Tour_Beginners_Layout.CanvasDEMO"

   x:Name="Window"

   Title="CanvasDEMO"

   Width="640" Height="480">

       <Canvas Margin="0,0,0,0" Background="White">

           <Rectangle Fill="Blue"

               Stroke="Blue"

               Width="145"

               Height="126"

               Canvas.Left="124" Canvas.Top="122"/>

           <Ellipse Fill="Green"

               Stroke="Green"

               Width="121" Height="100"

               Panel.ZIndex="1"

               Canvas.Left="195" Canvas.Top="191"/>

       </Canvas>

</Window>

Примеркода C#:

Canvas canv = new Canvas();

//добавить элемент Canvas в качестве единственного дочернего элемента Window

this.Content = canv;

canv.Margin = new Thickness(0, 0, 0, 0);

canv.Background = new SolidColorBrush(Colors.White);

//Прямоугольник

Rectangle r = new Rectangle();

r.Fill = new SolidColorBrush(Colors.Blue);

r.Stroke = new SolidColorBrush(Colors.Blue);

r.Width = 145;

r.Height = 126;

r.SetValue(Canvas.LeftProperty, (double)124);

r.SetValue(Canvas.TopProperty, (double)122);

canv.Children.Add(r);

//Эллипс

Ellipse el = new Ellipse();

el.Fill = new SolidColorBrush(Colors.Green);

el.Stroke = new SolidColorBrush(Colors.Green);

el.Width = 121;

el.Height = 100;

el.SetValue(Canvas.ZIndexProperty, 1);

el.SetValue(Canvas.LeftProperty, (double)195);

el.SetValue(Canvas.TopProperty, (double)191);

canv.Children.Add(el);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]