Наш ассоциированный член www.Bikinika.com.ua

Керування WebBrowser

Різне. елементи керування:

WPF постачається з готовим до використання елементом управління WebBrowser, який дозволяє розміщувати повний веб-браузер у вашому додатку. Контроль WebBrowser - це просто оболонка версії Internet Explorer у програмі ActiveX, але оскільки вона є складовою частиною Windows, ваша програма повинна працювати на всіх машинах Windows без встановлення додаткових компонентів.

Я зробив дещо по-іншому в цій статті: замість того, щоб починати з дуже обмеженим прикладом і потім додати до нього, я створив лише один, але більш складний приклад. Він ілюструє, наскільки легко можна отримати невеликий веб-браузер і запустити його. Це дуже просто, але ви можете легко розширити його, якщо хочете. Ось як виглядає це:

Отже, давайте подивимося на код:

<Window x: Class = "WpfTutorialSamples.Misc_controls.WebBrowserControlSample" xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns: x = "http://schemas.microsoft.com/winfx / 2006 / xaml "Title =" WebBrowserControlSample "Height =" 300 "Ширина =" 450 "> <Window.CommandBindings> <CommandBinding Command =" NavigationCommands.BrowseBack "CanExecute =" BrowseBack_CanExecute " = "NavigationCommands.BrowseForward" DockPanel.Dock = "Вгору"> <Кнопка Command = "NavigationCommands.BrowseBack"> <Image Source = "/ WpfTutorialSamples; компонент / Images / arrow_left.png" Ширина = "16" Height = "16" /> </Button> <Кнопка Command = "NavigationCommands.BrowseForward"> <Image Source = "/ WpfTutorialSamples; компонент / Images / arrow_right.png" Ширина = "16" Height = "16" /> </Button> <Separator /> <TextBox Name = "txtUrl" Width = "300" KeyUp = "txtUrl_KeyUp" /> <Кнопка Command = "NavigationCommands.GoToPage"> < Image Source = "/ WpfTutorialSamples; компонент / Images / world_go.png" Ширина = "16" Height = "16" /> </Button> </ToolBar> <Ім'я WebBrowser = "wbSample" Navigating = "wbSample_Navigating"> </ WebBrowser> </DockPanel> </Window> за допомогою системи; з використанням System.Windows; використання System.Windows.Input; простору імен WpfTutorialSamples.Misc_controls {частковий частковий клас WebBrowserControlSample: Вікно {public WebBrowserControlSample () {InitializeComponent (); wbSample.Navigate ("http://www.wpf-tutorial.com"); } private void txtUrl_KeyUp (відправник об'єкта, KeyEventArgs e) {if (e.Key == Key.Enter) wbSample.Navigate (txtUrl.Text); } private void wbSample_Navigating (відправник об'єкта, System.Windows.Navigation.NavigatingCancelEventArgs e) {txtUrl.Text = e.Uri.OriginalString; } private void BrowseBack_CanExecute (відправник об'єкта, CanExecuteRoutedEventArgs e) {e.CanExecute = ((wbSample! = null) && (wbSample.CanGoBack)); } private void BrowseBack_Executed (відправник об'єкта, ExecutedRoutedEventArgs e) {wbSample.GoBack (); } private void BrowseForward_CanExecute (відправник об'єкта, CanExecuteRoutedEventArgs e) {e.CanExecute = ((wbSample! = null) && (wbSample.CanGoForward)); } private void BrowseForward_Executed (відправник об'єкта, ExecutedRoutedEventArgs e) {wbSample.GoForward (); } приватний void GoToPage_CanExecute (відправник об'єкта, CanExecuteRoutedEventArgs e) {e.CanExecute = true; } private void GoToPage_Executed (відправник об'єкта, ExecutedRoutedEventArgs e) {wbSample.Navigate (txtUrl.Text); }}}

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

Почнемо з розмови про частину XAML . Зверніть увагу, що я використовую декілька концепцій, що обговорюються в цьому навчальному посібнику, в тому числі з елементами управління ToolBar і командами WPF. Панель інструментів використовується для розміщення декількох кнопок для переходу назад і вперед. Після цього ми маємо адресний рядок для введення та показу поточної URL-адреси, а також кнопку для переходу до введеного URL-адреси.

Нижче панелі інструментів ми маємо власне управління WebBrowser. Як ви можете бачити, його використання вимагає лише одного рядка XAML - в цьому випадку ми підписуємося на навігаційну подію, яка відбувається, як тільки WebBrowser почне навігацію до URL.

У Code-behind , ми починаємо, переходячи до URL вже в конструкторі Window, щоб мати щось показати негайно замість порожнього контролю. Потім ми маємо подія txtUrl_KeyUp , в якій ми перевіряємо, чи користувач натиснув Enter у адресному рядку - якщо так, ми починаємо навігацію до введеного URL.

Подія wbSample_Navigating гарантує, що адресний рядок оновлюється кожного разу, коли починається нова навігація. Це важливо, оскільки ми хочемо, щоб вона показувала поточну URL-адресу незалежно від того, чи користувач ініціював навігацію, ввівши нову URL-адресу або натиснувши посилання на веб-сторінці.

Останньою частиною коду є проста робота з нашими командами: дві для кнопок назад і вперед, де ми використовуємо CanGoBack і CanGoForward, щоб вирішити, чи можуть вони виконувати, і методи GoBack і GoForward виконують фактичну роботу. Це дуже стандартно при роботі з командами WPF, як описано в розділі команд цього підручника.

Для останньої команди, ми дозволяємо їй завжди виконувати, і коли це відбувається, ми знову використовуємо метод Navigate ().

Як ви можете бачити, хостинг і використання повного веб-браузера всередині вашої програми стає дуже легким за допомогою керування WebBrowser. Тим не менш, ви повинні знати, що версія WPF WebBrowser трохи обмежена в порівнянні з версією WinForms, але для базового використання і навігації вона працює нормально.

Якщо ви хочете використовувати WinForms замість цього, ви можете зробити це за допомогою WindowsFormsHost, що пояснюється в інших розділах цього підручника.

Ця стаття повністю перекладена на наступні мови: Чи немає в списку бажаної мови? Натисніть тут щоб допомогти нам перекласти цю статтю на вашу мову!Ця стаття повністю перекладена на наступні мови: Чи немає в списку бажаної мови?

Новости