This article has been localized into Ukrainian by the community.
Параметри командного рядка у WPF
Параметри командного рядка - це техніка, при якій ви можете передавати набір параметрів програмі, яку ви хочете запустити, щоб якось вплинути на неї. Найпоширеніший приклад - зробити програму відкритою за допомогою певного файлу, наприклад в редакторі. Ви можете спробувати це самостійно за допомогою вбудованої програми Блокнот Windows, запустивши (виберіть Запустити в меню Пуск або натисніть [WindowsKey-R]):
notepad.exe c:\Windows\win.ini
Після цього запуститься Блокнот із відкритим файлом win.ini (можливо, доведеться налаштувати шлях відповідно до вашої системи). Блокнот просто шукає один або кілька параметрів, а потім використовує їх, і ваша програма може зробити те саме!
Параметри командного рядка передаються у вашу програму WPF через подію запуску, на яку ми підписалися в статті App.xaml. Ми зробимо те ж саме в цьому прикладі, а потім використаємо значення, передане через аргументи методу. По-перше, файл App.xaml:
<Application x:Class="WpfTutorialSamples.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="Application_Startup">
<Application.Resources></Application.Resources>
</Application>
Все, що ми тут робимо, - це підписатися на подію Startup , замінивши властивість StartupUri . Потім подія реалізується в App.xaml.cs:
using System;
using System.Collections.Generic;
using System.Windows;
namespace WpfTutorialSamples
{
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
MainWindow wnd = new MainWindow();
if(e.Args.Length == 1)
MessageBox.Show("Now opening file: \n\n" + e.Args[0]);
wnd.Show();
}
}
}
Тут ми використовуємо StartupEventArgs . Він передається у подію запуску програми з назвою e. Він має властивість Args , що є масивом рядків. Параметри командного рядка розділяються пробілами, за винятком випадків, коли пробіл знаходиться всередині рядка з лапками.
Тестування параметра командного рядка
Якщо запустити наведений вище приклад, нічого не трапиться, оскільки параметри командного рядка не вказані. На щастя, Visual Studio дозволяє легко перевірити це у вашому додатку. У меню Проект (Project) виберіть "Властивості [Назва проекту]" ("[Назва проекту] properties"), а потім перейдіть на вкладку Налагодження (Debug), де Ви можете визначити параметр командного рядка . Це повинно виглядати приблизно так:
Спробуйте запустити програму, і ви побачите, як вона реагує на ваш параметр.
Звичайно, повідомлення не дуже корисне. Натомість вам може знадобитися або передати його конструктору вашого головного вікна, або викликати на ньому публічний метод, наприклад:
using System;
using System.Collections.Generic;
using System.Windows;
namespace WpfTutorialSamples
{
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
MainWindow wnd = new MainWindow();
// The OpenFile() method is just an example of what you could do with the
// parameter. The method should be declared on your MainWindow class, where
// you could use a range of methods to process the passed file path
if(e.Args.Length == 1)
wnd.OpenFile(e.Args[0]);
wnd.Show();
}
}
}
Можливості командного рядка
У цьому прикладі ми перевіряємо, чи є точно один аргумент, і якщо так, ми використовуємо його як ім'я файлу. На прикладі в реальному світі ви можете зібрати кілька аргументів і навіть використовувати їх для опцій, наприклад увімкнення або вимкнення певної функції. Ви могли б це зробити, переглянувши весь список аргументів, переданих під час збору інформації, необхідної для продовження, але це виходить за рамки цієї статті.