WPF - Tworzenie hiperłącza otwieranego w zewnętrznym oknie przeglądarki internetowej
W tym artykule tworzymy hiperłącze w aplikacjach WPF otwierające się w oknie przeglądarki internetowej.
W czym leży problem?
Technologia WPF dostarcza nam kontrolki Hyperlink jednak działa ona w obrębie strony w aplikacji, czyli nie możemy pozwolić użytkownikowi na otworzenie strony internetowej w nowym oknie przeglądarki, a przynajmniej nie w sposób domyślny. To co możemy jednak zrobić, to w podłączyć się do zdarzenia RequestNavigate i zdecydować o otworzeniu okna przeglądarki pod wskazanym adresem w logice aplikacji.
Jak otworzyć stronę internetową w oknie przeglądarki?
Zacznijmy od poniższej konstrukcji w widoku aplikacji (XAML):<Hyperlink NavigateUri="http://www.mblog.boo.pl" RequestNavigate="Hyperlink_RequestNavigate">
www.mblog.boo.pl
</Hyperlink>
</TextBlock>
Co my tu mamy... Widzimy zdefiniowany w we własności NavigateUrl adres strony, którą chcemy otworzyć a także nazwę metody eventa RequestNavigate ustaloną na Hyperlink_RequestNavigate. Myślę, że wszystko na tym etapie jest jasne, czas więc na implementację metody Hyperlink_RequestNavigate w code-behind widoku.
A może ona wyglądać następująco:
{
Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri));
e.Handled = true;
}
Jak widać, metoda ta jest bardzo prosta, a najważniejszą jej częścią jest użycie metody Start() obiektu Process, która pozwala nam na uruchomienie zewnętrznego procesu, w tym wypadku domyślnej przeglądarki internetowej, ponieważ jako adres przekazujemy Uri z obiektu eventa, który odpowiada wartości z własności NavigateUrl zdefiniowanej w kontrolce Hyperlink. Ot i cały zabieg.
Oczywiście aplikacje WPF proszą się o użycie wzorca MVVM, co w tym przypadku nie jest żadnym problemem - bez trudu możemy logikę eventu przenieść do logiki komendy w ViewModelu.
Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!