Разработка приложений на WPF

Автор работы: Пользователь скрыл имя, 01 Сентября 2013 в 23:15, творческая работа

Краткое описание

WindowsPresentationFoundation (WPF) — система для построения клиентских приложений Windows с визуально привлекательными возможностями взаимодействия с пользователем, графическая (презентационная) подсистема в составе .NET Framework, использующая язык XAML.
WPF предустановленав Windows Vista, Windows, Windows 8.С помощью WPF можно создавать широкий спектр как автономных, так и запускаемых в браузере приложений.
В основе WPF лежит векторная система визуализации, не зависящая от разрешения устройства вывода и созданная с учётом возможностей современного графического оборудования.

Содержание

Введение 5
1 Проектирование приложения 6
1.1 Постановка задачи 6
1.2 Проектируемое приложение 6
1.3 Отображение списка папок 6
1.4 Отображение списка файлов 7
1.6 Контекстное меню 7
1.7 Использование ранее созданных классов 7
2 Реализация приложения 8
2.1 Интерфейс приложения 8
2.2 Реализация заполнения дерева папок 8
2.3 Реализация заполнения ListView 9
2.4 Реализация контекстного меню 10
2.5 Тестирование программы 11
Заключение 12

Вложенные файлы: 1 файл

РГР ПП 3.docx

— 688.46 Кб (Скачать файл)

 

                ImageSource wpfBitmap =

                     Imaging.CreateBitmapSourceFromHBitmap(

                          hBitmap, IntPtr.Zero, Int32Rect.Empty,

                          BitmapSizeOptions.FromEmptyOptions());

                return wpfBitmap;

            }

            catch

            {

                return null;

            }

        }

 

Рисунок 5 –  Конвертация Icon в ImageSource

 

2.4 Реализация контекстного меню

Для отображения контекстного меню в списке файлов используется сторонний модуль, подключенный к проекту. Данный модуль отображает все пункты меню, которое встроено в стандартный «Проводник». Пример данного меню представлен на рисунке 6.

Рисунок 6 – Пример контекстного меню

2.5 Тестирование программы

На рисунке 7 показано состояние программы после того, как пользователь перешел в папку C:\Windows.

Рисунок 7 – Содержимое папки

 

Работа компонентов на WPF, по сравнению с аналогичными компонентами на Windows Forms, отличается повышенной скоростью. Внешне компоненты выглядят приятнее.

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

В данном примере теста рассматривается попытка получить содержимое папки C:\MSOCache. Программа выдает сообщение о том, что доступ невозможен, и не выдает соответственно никакого списка файлов.

Рисунок 8 – Попытка получения доступа

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

ЗАКЛЮЧЕНИЕ

 

В ходе выполнения расчетно-графической  работы была разработана программа на WPF «Проводник», позволяющая выполнять обзор текущих папок и файлов в системе, получать сведения об этих объектах.

В ходе работы были получены навыки по созданию приложений на WPF. Разработан собственный компонент на базе TreeViewItem.

Программа была успешно протестирована в различных ситуациях.

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

 

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

 

1 Библиотека [В Интернете] // MSDN – изучите разработку программного обеспечения для настольных ПК, веба, облака и телефонов - http://msdn.microsoft.com/ru-ru/library/default.aspx. Режим доступа: http://msdn.microsoft.com, свободный.

2 Общие требования  к оформлению и изложению документов  учебной деятельности обучающихся. СТО 89-03.5 – 2013 [Текст] – Архангельск, 2013 г. – стр. 93.

3 A Simple WPF Explorer Tree [В Интернете] // CodeProject - http://www.codeproject.com/Articles/21248/A-Simple-WPF-Explorer-Tree. Режим доступа: http://www.codeproject.com/, свободный.

4 Windows Presentation Foundation [В Интернете] // Википедия. Свободная энциклопедия. - http://ru.wikipedia.org/wiki/Windows_Presentation_Foundation). Режим доступа: http://ru.wikipedia.org/, свободный.

    

 

 

ПРИЛОЖЕНИЕ  А

(обязательное)

Листинг пользовательского  компонента TreeViewItemWithIcons

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Navigation;

using System.Windows.Shapes;

 

namespace WpfApplication1

{

    /// <summary>

    /// Логика взаимодействия для UserControl1.xaml

    /// </summary>

    public partial class TreeViewWithIcons : TreeViewItem

    {

            #region Global variables

            ImageSource iconSource;

            TextBlock textBlock;

            public Image icon;

            #endregion Global variables

 

            #region Constructors and Destructors

            public TreeViewWithIcons()

            {

                StackPanel stack = new StackPanel();

                stack.Orientation = Orientation.Horizontal;

                Header = stack;

                icon = new Image();

                icon.VerticalAlignment = VerticalAlignment.Center;

                icon.Margin = new Thickness(0, 0, 4, 0);

                icon.Source = iconSource;

                stack.Children.Add(icon);

                //Add the HeaderText After Adding the icon

                textBlock = new TextBlock();

                textBlock.VerticalAlignment = VerticalAlignment.Center;

                stack.Children.Add(textBlock);

            }

            #endregion Constructors and Destructors

            #region Properties

 

            public ImageSource Icon

            {

                set

                {

                    iconSource = value;

                    icon.Source = iconSource;

                }

                get

                {

                    return iconSource;

                }

            }

            #endregion Properties

            #region Event Handlers

 

            protected override void OnUnselected(RoutedEventArgs args)

            {

                base.OnUnselected(args);

                icon.Source = iconSource;

            }

 

            protected override void OnSelected(RoutedEventArgs args)

            {

                base.OnSelected(args);

                icon.Source = iconSource;

            }

 

            public string HeaderText

            {

                set

                {

                    textBlock.Text = value;

                }

                get

                {

                    return textBlock.Text;

                }

            }

            #endregion Event Handlers

        }

}

 

 

 

 

ПРИЛОЖЕНИЕ  Б

(обязательное)

Листинг XAML

 

 <Window x:Class="WpfApplication1.MainWindow"

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

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

        Title="ПолуПроводник" Height="404" Width="947" Loaded="Window_Loaded" xmlns:my="clr-namespace:WpfApplication1" AllowDrop="True" ResizeMode="NoResize" Name="MainWindowApp">

    <Grid ShowGridLines="False">

        <StackPanel Height="280" HorizontalAlignment="Left" Margin="21,34,0,0" Name="stackPanel1" VerticalAlignment="Top" Width="380">

            <ScrollViewer Height="280" Width="380" HorizontalAlignment="Left" VerticalAlignment="Top">

                <TreeView Margin="0,0,0,0" x:Name="treeView1" VerticalAlignment="Top" Height="280" Width="363" HorizontalAlignment="Left" AllowDrop="False" SelectedItemChanged="treeView1_SelectedItemChanged_2"></TreeView>

            </ScrollViewer>

        </StackPanel>

        <ListView Height="280" Margin="407,34,12,0" Name="listView1" VerticalAlignment="Top" SelectionMode="Single" SelectionChanged="listView1_SelectionChanged" PreviewMouseDown="listView1_PreviewMouseDown">

            <ListView.ItemContainerStyle>

                <Style TargetType="ListViewItem">

                    <Setter Property="Height" Value="20" />

                </Style>

            </ListView.ItemContainerStyle>

            <ListView.View>

                <GridView>

                    <GridViewColumn Header="Иконка">

                        <GridViewColumn.CellTemplate>

                            <DataTemplate>

                                <Image Source="{Binding Path=icon}"></Image>

                            </DataTemplate>

                        </GridViewColumn.CellTemplate>

                    </GridViewColumn>

                    <GridViewColumn Header="Имя файла" DisplayMemberBinding="{Binding Path=fileName}"/>

                    <GridViewColumn Header="Атрибуты" DisplayMemberBinding="{Binding Path=attributes}"/>

                    <GridViewColumn Header="Размер" DisplayMemberBinding="{Binding Path=size}"/>

                    <GridViewColumn Header="Расширение" DisplayMemberBinding="{Binding Path=extension}"/>

                    <GridViewColumn Header="Дата создания" DisplayMemberBinding="{Binding Path=creationTime}"/>

                   

                </GridView>

            </ListView.View>

        </ListView>

        <StatusBar Height="35" Name="statusBar1" VerticalAlignment="Bottom">

            <Label Name="statusFiles">Файлов: 0</Label>

            <Label Name="statusFolders">Папок: 0</Label>

        </StatusBar>

    </Grid>

</Window>


Информация о работе Разработка приложений на WPF