1 / 14

Классы Windows Presentation Foundation

Классы Windows Presentation Foundation. Класс Application. Класс System.Windows. AppIication инкапсулирует приложение в целом. В приложении можно создать только один объект AppIication . Фрагмент кода в файле App.g.cs , который сгенерирован Visual Studio 2008:. namespace Wpf_Sample1 {

felix
Download Presentation

Классы Windows Presentation Foundation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Классы Windows Presentation Foundation

  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указан в разметке: <Window x:Class="Wpf_Sample1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300" Closing="Window_Closing"> </Window>

  6. Окно сообщений. КлассSystem.Windows.MessageBox • Для вывода сообщений и организации простейшего взаимодействия с пользователем обычно используется статический метод 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 ); • Замечание: В Windows Forms есть свой классMessageBox для окна сообщений, который определен в пространстве имен System.Windows.Forms. В этом же пространстве имен определены перечисления для класса.

  7. Перечислениядля класса MessageBox • Перечисление System.Windows.MessageBoxResult содержит информацию о том, какую кнопку нажал пользователь. Значения перечисления • Ok Yes • Cancel No None • Перечисление System.Windows.MessageBoxButtonsопределяет набор кнопок в окне сообщений. Значения перечисления • Ok OkCancel • YesNoYesNoCancel • Перечисление MessageBoxImageопределяет одну из готовых иконок в окне сообщений, например, MessageBoxImage.Error. • Перечисление MessageBoxOptionsопределяет дополнительные настройки окна сообщений.

  8. Диалоги • В WPF для диалогов пользователя используется класс System.Windows.Window. Диалоги создаются с помощью методов : publicvoidShow(); public Nullable<bool> ShowDialog();

  9. Отношение подчиненный-владелец • Можно установить отношение подчиненный-владелец между окнами, присвоив свойству Ownerокна ссылку на окно-владелец (owner). public Window Owner { get; set; } • Подчиненное окно никогда не скрывается за окном-владельцем(свойство, необходимое для окон “Find-Replace”). • Подчиненное окно минимизируется (сворачивается) и закрывается одновременно с окном-владельцем. • Окно-владелец может получить доступ к подчиненным(собственным) окнам через свойство public WindowCollection OwnedWindows { get; }; public sealed class WindowCollection : ICollection, IEnumerable • Окно, открытое вызовом метода Show, не имеет автоматической связи с окном, его открывшим. Если необходимо установить эту связь, надо присвоить значение свойству Owner.

  10. Классы OpenFileDialog и SaveFileDialog • Классы используются для создания стандартных диалогов для выбора или ввода имени файла. Диалоги дают возможность навигации по файловой системе. • Диалоги создаются только как модальныепри вызове метода ShowDialog(). После того, как диалог закрыт, имя выбранного пользователем файла доступно через свойства объекта класса OpenFileDialog ( SaveFileDialog). • Определенные в классах OpenFileDialog и SaveFileDialog свойства дают возможность немного изменить набор элементов и функциональность стандартных диалогов. public virtual Nullable<bool> ShowDialog(); public Nullable<bool> ShowDialog( Window owner );

  11. Некоторые открытые свойства класса FileDialog • Можно восстановить все значения свойств, принятые по умолчанию, вызвав метод publicoverridevoidReset();

  12. Пример • В приведенном ниже коде • создается объекткласса OpenFileDialog: • задается строка-фильтр; • в том случае, когда пользователь подтвердил выбор, нажав кнопку Open, имя файла и текущий каталог выводятся в элемент управления TextBox. private void button_Open_Click(object sender, RoutedEventArgs e) { OpenFileDialogdlg = 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: • Метод класса открывает файл, имя которого выбрал пользователь, в режиме только для чтения (независимо от состояния отмечаемой кнопки <ReadOnly>): publicStreamOpenFile();

  14. Класс SaveFileDialog • Свойства класса SaveFileDialog: • Метод класса создает и открывает файл, имя которого выбрал пользователь, в режиме для чтения/записи (если файл уже существует, записанные в нем данные будут потеряны): publicStreamOpenFile();

More Related