Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемСнежана Офросимова
1 Классы Windows Presentation Foundation System.Object DispatcherObject ApplicationDependencyObject Visual UIElement FrameworkElement Page Shape TextBlock Control ContentControl Frame Window NavigationWindow ButtonBase Button RepeatButton ToggleButton CheckBoxRadioButton RangeBase Slider ProgressBar TextBoxBase TextBox RichTextBox ItemsControl MenuBase MenuContextMenu HeaderedItemsControl MenuItemToolbar Selector TabControl ListBox ListView ComboBox TreeView Panel GridCanvas ContentElement FrameworkContentElement FrameworkTemplateStyle NavigationService
2 Класс Application Класс System.Windows.AppIication инкапсулирует приложение в целом. В приложении можно создать только один объект AppIication. Фрагмент кода в файле App.g.cs, который сгенерирован Visual Studio 2008: namespace Wpf_Sample1 { public partial class App : System.Windows.Application { public void InitializeComponent() { this.StartupUri = new System.Uri("Window1.xaml", System.UriKind.Relative); } /// Application Entry Point. public static void Main() { Wpf_Sample1. App app = new Wpf_Sample1.App(); app.InitializeComponent(); app.Run(); } Mетод Run класса AppIication запускает диспетчер, управляющий отправкой событий. Метод Run возвращает управление при вызове метода Shutdown (явном или WPF- вызове). Явный или неявный вызов метода Shutdown управляется свойством public ShutdownMode ShutdownMode { get; set; } Перечисление ShutdownMode имеет значения OnLastWindowClose, OnMainWindowClose и OnExplicitShutdown.
3 Свойства Current и Properties класса AppIication Статическое свойство Current дает доступ к объекту AppIication в любом месте программы: public static Application Current { get; } Экземплярное свойство Properties дает доступ к коллекции, реализующей интерфейс System.Collections.IDictionary, которая поддерживается объектом AppIication. public IDictionary Properties { get; } Свойства Properties и Current дают доступ к элементам коллекции в любом месте приложения и на протяжении всей жизни приложения. В коллекцию можно добавить элемент любого типа, связав с ним ключ также любого типа.
4 Класс Window Класс System.Windows.Window используется для создания визуального элемента верхнего уровня и является контейнером для других элементов управления. В процессе создания окна в следующем порядке возбуждаются события: Initialized Activated Loaded ContentRendered При закрытии окна события поступают в следующем порядке: Closing Unloaded Closed События Activated и Deactivated возникают при переключении на другие окна.
5
Событие Closing Событие Closing происходит после вызова метода Close() - явного или неявного. В обработчике этого события можно отменить закрытие окна. Событие Closing имеет тип CancelEventHandler public delegate void CancelEventHandler( Object sender, CancelEventArgs e ); В классе System.ComponentModel.CancelEventArgs определено свойство Cancel, которое дает возможность отказаться от закрытия окна. public bool Cancel { get; set; } В следующем примере окно закрывается только при выборе кнопки Да в окне сообщений MessageBox. private void Window_Closing (object sender, System.ComponentModel.CancelEventArgs e) { MessageBoxResult res = MessageBox.Show("Закрыть окно?", "", MessageBoxButton.YesNo); if (res == MessageBoxResult.No) e.Cancel = true; } Обработчик для события Closing указан в разметке:
6 Для вывода сообщений и организации простейшего взаимодействия с пользователем обычно используется статический метод Show класса System.Windows.MessageBox. Класс System.Windows.MessageBox является непосредственным потомком класса System.Object и содержит только один собственный метод Show. Открытый статический метод Show имеет 12 перегрузок. public static MessageBoxResult Show ( string messageBoxText ); public static MessageBoxResult Show ( string messageBoxText, string caption ); public static MessageBoxResult Show ( string messageBoxText, string caption, MessageBoxButton button ); public static MessageBoxResult Show ( Window owner, string messageBoxText, string caption, MessageBoxButton button, MessageBoxImage icon, MessageBoxResult defaultResult, MessageBoxOptions options ); Окно сообщений. Класс System.Windows.MessageBox Замечание: В Windows Forms есть свой класс MessageBox для окна сообщений, который определен в пространстве имен System.Windows.Forms. В этом же пространстве имен определены перечисления для класса.
7 Перечисление System.Windows.MessageBoxButtons определяет набор кнопок в окне сообщений. Значения перечисления OkOkCancel YesNoYesNoCancel Перечисления для класса MessageBox Перечисление MessageBoxImage определяет одну из готовых иконок в окне сообщений, например, MessageBoxImage.Error. Перечисление System.Windows.MessageBoxResult содержит информацию о том, какую кнопку нажал пользователь. Значения перечисления Ok Yes Cancel NoNone Перечисление MessageBoxOptions определяет дополнительные настройки окна сообщений.
8 Диалоги ShowDialog Создает модальный диалог. После вызова ShowDialog следующий оператор не выполняется пока не произойдет выход из метода. Пока не закрыт модальный диалог, окно-владелец не принимает ввод с клавиатуры и сообщения мыши. Show Создает немодальное окно и инициирует в нем событие Loaded, после чего сразу же происходит выход из метода. Диалог в среде VisualStudio работает как немодальный диалог. В WPF для диалогов пользователя используется класс System.Windows.Window. Диалоги создаются с помощью методов : public void Show(); public Nullable ShowDialog();
9 Отношение подчиненный-владелец Можно установить отношение подчиненный-владелец между окнами, присвоив свойству Owner окна ссылку на окно-владелец (owner). public Window Owner { get; set; } Окно, открытое вызовом метода Show, не имеет автоматической связи с окном, его открывшим. Если необходимо установить эту связь, надо присвоить значение свойству Owner. Подчиненное окно никогда не скрывается за окном-владельцем (свойство, необходимое для окон Find-Replace). Подчиненное окно минимизируется (сворачивается) и закрывается одновременно с окном-владельцем. Окно-владелец может получить доступ к подчиненным(собственным) окнам через свойство public WindowCollection OwnedWindows { get; }; public sealed class WindowCollection : ICollection, IEnumerable
10 Классы OpenFileDialog и SaveFileDialog Классы используются для создания стандартных диалогов для выбора или ввода имени файла. Диалоги дают возможность навигации по файловой системе. Диалоги создаются только как модальные при вызове метода ShowDialog(). После того, как диалог закрыт, имя выбранного пользователем файла доступно через свойства объекта класса OpenFileDialog ( SaveFileDialog). Определенные в классах OpenFileDialog и SaveFileDialog свойства дают возможность немного изменить набор элементов и функциональность стандартных диалогов. System.Object Microsoft.Win32. CommonDialog Microsoft.Win32. FileDialog Microsoft.Win32. OpenFileDialog Microsoft.Win32. SaveFileDialog public virtual Nullable ShowDialog(); public Nullable ShowDialog( Window owner );
11 Некоторые открытые свойства класса FileDialog string FileName {get; set;} Полное имя файла, выбранное или введенное пользователем. Значение по умолчанию String.Empty. bool Multiselect { get; set; } true, если пользователю разрешено выбрать несколько файлов. Значение по умолчанию false. string[] FileNames {get;} Массив имен файлов, выбранных пользователем. string Filter {get; set;} Строка фильтра. int FilterIndex {get; set;} Индекс пары из строки фильтра, которая будет выведена при создании диалога. bool CheckFileExists {get; set;} Вывод предупреждения, если пользователь ввел имя несуществующего файла. string InitialDirectory { get; set; } Начальный каталог, который будет выведен при создании диалога. bool RestoreDirectory { get; set; } true, если после поиска каталог должен быть восстановлен. Значение по умолчанию false. Можно восстановить все значения свойств, принятые по умолчанию, вызвав метод public override void Reset();
12 Пример В приведенном ниже коде создается объект класса OpenFileDialog: задается строка-фильтр; в том случае, когда пользователь подтвердил выбор, нажав кнопку Open, имя файла и текущий каталог выводятся в элемент управления TextBox. private void button_Open_Click(object sender, RoutedEventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "C#(*cs)|*.cs|PowerPointDocs(*.ppt;*pptx)|*ppt;*pptx;|All(*.*)|*.*"; dlg.FilterIndex = 2; if ( dlg.ShowDialog()== true ) { textBox1. Text = dlg.FileName + "\n" + Directory.GetCurrentDirectory().ToString(); }
13 Класс OpenFileDialog Свойства класса OpenFileDialog: bool Multiselect {get; set;} true, если пользователю разрешено выбрать несколько файлов. Значение по умолчанию false.. bool ShowReadOnly {get; set;} Наличие отмечаемой кнопки ReadOnly. bool ReadOnlyChecked {get; set;} Состояние отмечаемой кнопки ReadOnly. Метод класса открывает файл, имя которого выбрал пользователь, в режиме только для чтения (независимо от состояния отмечаемой кнопки ) : public Stream OpenFile();
14 Класс SaveFileDialog Свойства класса SaveFileDialog: bool CreatePrompt {get; set;} Запрос, следует ли создавать файл, который не существует. bool OverwritePrompt {get; set;} Запрос, следует ли перезаписать файл, который уже существует. Метод класса создает и открывает файл, имя которого выбрал пользователь, в режиме для чтения/записи (если файл уже существует, записанные в нем данные будут потеряны): public Stream OpenFile();
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.