(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Пошаговое руководство. Построение простого приложения WPF с помощью конструктора WPF

В данном пошаговом руководстве показано, как построить простое приложение Windows Presentation Foundation (WPF) с помощью сред. Конструктор WPF.

В данном пошаговом руководстве выполняются следующие задачи.

  • Создание проекта.

  • Создание макета.

  • Добавление в макет элементов управления.

  • Задание значений свойств, относящихся к макету.

  • Создание источника данных.

  • Подключение к источнику данных.

  • Привязка свойств элемента управления.

В итоге будет создано простое приложение, позволяющее просматривать файловую систему. Пользовательский интерфейс приложения будет реализован на языке XAML. Дополнительные сведения см. в разделе XAML в WPF. На следующем рисунке показано, как будет выглядеть приложение.

Просмотр дерева FolderExplorer и списка
ПримечаниеПримечание

Это практическое руководство в виде практикума, выполняемого в Visual Studio 2010, доступно на странице WPF Simple Application Walkthrough Hands on Lab.

Ниже приведены компоненты, необходимые для выполнения данного пошагового руководства.

  • Visual Studio 2010.

Первым этапом является создание проекта для приложения.

Создание проекта

  1. Создайте новый проект приложения WPF на языке Visual Basic или Visual C# с именем FolderExplorer. Дополнительные сведения см. в разделе Практическое руководство. Создание нового проекта приложения WPF.

    Файл MainWindow.xaml будет открыт в сред. Конструктор WPF.

  2. В представлении конструктора выберите окно. Дополнительные сведения см. в разделе Практическое руководство. Выбор и перемещение элементов в область конструктора.

  3. В окне Свойства установите для свойства Title значение Folder Explorer.

Макет определяет расположение элементов управления в главном окне приложения. Ниже показано, как создать элементы макета, которые будут содержать элементы управления приложения.

Создание макета

  1. Выберите в окне корневой элемент управления Grid.

  2. Добавьте вторую строку к сетке. Дополнительные сведения см. в разделе Практическое руководство. Добавление строк и столбцов в таблицу.

  3. Добавьте второй столбец к сетке.

Если макет определен, его можно заполнить элементами управления.

Добавление в макет элементов управления

  1. Перетащите элемент управления TreeView с панели элементов в первую ячейку сетки.

  2. Перетащите элемент управления ListView с панели элементов в ячейку, находящуюся в первой строке и втором столбце сетки.

  3. Перетащите элемент управления ListView с панели элементов в ячейку, находящуюся во второй строке и втором столбце таблицы.

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

Задание свойств, связанных с макетом

  1. Выберите элемент управления TreeView.

  2. В окне Свойства задайте значения свойств, как показано ниже.

    Свойство

    Значение

    Grid.ColumnSpan

    1

    Grid.RowSpan

    2

    Высота

    Auto

    HorizontalAlignment

    Stretch

    Margin

    0,0,0,0

    VerticalAlignment

    Stretch

    Ширина

    Auto

    Размер элемента управления TreeView изменится таким образом, чтобы элемент поместился в первом столбце таблицы и занимал две строки таблицы.

  3. Выберите оба элемента управления ListView.

  4. В окне Свойства задайте значения свойств, как показано ниже.

    Свойство

    Значение

    Grid.ColumnSpan

    1

    Grid.RowSpan

    1

    Высота

    Auto

    HorizontalAlignment

    Stretch

    Margin

    0,0,0,0

    VerticalAlignment

    Stretch

    Ширина

    Auto

    Размер элементов управления ListView изменится таким образом, чтобы эти элементы заполнили соответствующие ячейки сетки.

    Структура в представлении конструктора
  5. Откройте окно Структура документа. Дополнительные сведения см. в разделе Навигация по иерархии элементов документа WPF.

  6. Разверните узел ColumnDefinitions для сетки.

  7. Выберите первый элемент узла ColumnDefinition.

    Окно Структура документа
  8. В окне Свойства присвойте свойству "Width" значение *.

  9. В окне Структура документа выберите второй элемент узла ColumnDefinition.

  10. В окне Свойства присвойте свойству "Width" значение 2*.

    Размер столбцов изменится: первый столбец займет одну треть ширины окна, а второй - две трети.

  11. В окне Структура документа разверните узел RowDefinitions для сетки.

  12. Выберите первый элемент узла RowDefinition.

  13. В окне Свойства присвойте свойству "Height" значение *.

  14. В окне Структура документа выберите второй элемент узла RowDefinition.

  15. В окне Свойства присвойте свойству "Height" значение *.

    Размер строк изменится: они будут занимать половину высоты окна.

  16. Постройте и запустите это решение.

  17. Измените размер окна, чтобы увидеть динамическое изменение размера элементов управления TreeView и ListView.

Источник данных для приложения FolderExplorer является классом с именем Folder. Этот класс представляет простую модель файловой системы.Каждый экземпляр класса Folder содержит коллекции SubFolders и Files.

Создание источника данных

  1. Добавьте новый класс с именем Folder к проекту FolderExplorer. 

  2. Замените содержимое файла Folder с исходным кодом следующим кодом.

  3. using System;
    using System.IO;
    using System.Linq;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    using System.Text;
    
    namespace FolderExplorer
    {
        public class Folder
        {
            private DirectoryInfo _folder;
            private ObservableCollection<Folder> _subFolders;
            private ObservableCollection<FileInfo> _files;
    
            public Folder()
            {
                this.FullPath = @"c:\";
            }
    
            public string Name
            {
                get
                {
                    return this._folder.Name;
                }
            }
    
            public string FullPath
            {
                get
                {
                    return this._folder.FullName;
                }
    
                set
                {
                    if (Directory.Exists(value))
                    {
                        this._folder = new DirectoryInfo(value);
                    }
                    else
                    {
                        throw new ArgumentException("must exist", "fullPath");
                    }
                }
            }
    
            public ObservableCollection<FileInfo> Files
            {
                get
                {
                    if (this._files == null)
                    {
                        this._files = new ObservableCollection<FileInfo>();
    
                        FileInfo[] fi = this._folder.GetFiles();
    
                        for (int i = 0; i < fi.Length; i++)
                        {
                            this._files.Add(fi[i]);
                        }
                    }
    
                    return this._files;
                }
            }
    
            public ObservableCollection<Folder> SubFolders
            {
                get
                {
                    if (this._subFolders == null)
                    {
                        this._subFolders = new ObservableCollection<Folder>();
    
                        DirectoryInfo[] di = this._folder.GetDirectories();
    
                        for (int i = 0; i < di.Length; i++)
                        {
                            Folder newFolder = new Folder();
                            newFolder.FullPath = di[i].FullName;
                            this._subFolders.Add(newFolder);
                        }
                    }
    
                    return this._subFolders;
                }
            }
        }
    }
    
    
    

Элементы управления WPF подключаются к источникам данных путем привязки данных. Далее показано, как объявить источник ObjectDataProvider и выполнить привязку к нему.

Подключение к источнику данных

  1. Откройте файл MainWindow.xaml в сред. Конструктор WPF. 

  2. В представлении XAML вставьте следующий код XAML в тег <Window> рядом с другими сопоставлениями xmlns. Дополнительные сведения см. в разделе Практическое руководство. Импорт пространства имен в XAML.

    xmlns:my="clr-namespace:FolderExplorer"
    
  3. Вставьте следующий код XAML после открывающего тега <Window> и перед открывающим тегом <Grid>.

    	<Window.Resources>
    
    		<ObjectDataProvider x:Key="RootFolderDataProvider" >
    			<ObjectDataProvider.ObjectInstance>
    				<my:Folder FullPath="c:\"/>
    			</ObjectDataProvider.ObjectInstance>
    		</ObjectDataProvider>
    
    		<HierarchicalDataTemplate 
    		    DataType    = "{x:Type my:Folder}"
                ItemsSource = "{Binding Path=SubFolders}">
    		    <TextBlock Text="{Binding Path=Name}" />
    		</HierarchicalDataTemplate>
    
    	</Window.Resources>
    
    
    
    
  4. Замените тег <TreeView> следующим кодом XAML.

    		<TreeView Grid.ColumnSpan="1" Grid.RowSpan="2" Margin="0,0,0,0" Name="treeView1" >
    			<TreeViewItem ItemsSource="{Binding Path=SubFolders, Source={StaticResource RootFolderDataProvider}}" Header="Folders"  />
    		</TreeView>
    
    
    

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

Выполнение привязки свойств элемента управления

  1. В представлении XAML замените оба тега <ListView> следующим кодом XAML.

    		<ListView Name="listView1" 
    		ItemsSource="{Binding Path=SelectedItem.SubFolders, ElementName=treeView1, Mode=OneWay}" 
    		Grid.Column="1" 
    		Grid.RowSpan="1" />
    		
    		<ListView Name="listView2" 
    		ItemsSource="{Binding Path=SelectedItem.Files, ElementName=treeView1, Mode=OneWay}" 
    		Grid.Column="1" 
    		Grid.Row="1" />
    
    
    
  2. Постройте и запустите это решение.

  3. Разверните элемент Папки, чтобы увидеть папки со своего диска C:.

  4. Поэкспериментируйте, щелкая вложенные папки и посматривая содержимое двух элементов управления ListView.

    Вложенные папки отображаются в верхнем элементе управления ListView, а файлы - в нижнем элементе управления ListView.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 05.07.2012 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
ABBYY Lingvo x6 Английская Домашняя версия, электронный ключ
Symantec Endpoint Encryption, License, 1-24 Devices
go1984 pro
SAP CRYSTAL Reports 2013 WIN INTL NUL
NERO 2016 Classic ESD. Электронный ключ
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Программирование на Microsoft Access
CASE-технологии
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
СУБД Oracle "с нуля"
Краткие описания программ и ссылки на них
3D и виртуальная реальность. Все о Macromedia Flash MX.
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100