Как перейти на страницу xaml из класса ResourceDictionary (WPF) - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть класс ResourceDictionary следующим образом:

  using System.Windows.Navigation;
    using static myApp.filesXAML.Login;

    namespace myApp.Clases
    {
        partial class functionsMenu : ResourceDictionary
        {
            private void imageCloseMyApp(object sender, MouseButtonEventArgs e)
            {
NavigationService.Navigate(new Uri("filesXAML/Login.xaml", UriKind.Relative));
            }
        }
    }

Функция imageCloseMyApp вызывается из изображения нажатием на него, и я sh вызываю другую страницу.

И я получаю следующую ошибку перед компиляцией проекта:

Код серьезности Описание Файл строки состояния проекта удален Ошибка CS0120 Ссылка на объект требуется для поля, метода или свойства 'NavigationService.Navigate (Uri)', а не для определения c myApp H: \ pro \ Visual_Studio \ myApp \ myApp \ Classes \ FunctionsMenu.cs 35 Active

Я искал inte rnet и пробовал следующие параметры:

Login page = new Login();         
page.NavigationService.Navigate(new Uri("filesXAML/Login.xaml",UriKind.RelativeOrAbsolute));

// or

NavigationService nav = NavigationService.GetNavigationService(Application.Current.Windows[0].Parent);
nav.Navigate(new Uri("filesXAML/Login.xaml", UriKind.Relative));

Но ни один не работает.

Есть предложения или комментарии?

1 Ответ

0 голосов
/ 24 февраля 2020

Я добился этого следующим образом:

 NavigationService nav = NavigationService.GetNavigationService((Grid)((Image)sender).Parent);
nav.Navigate(new Uri("filesXAML/Login.xaml", UriKind.Relative));

Я помогу себе понять следующую тему:

Как получить родительский элемент управления из события, отправленного элементом управления в ресурсах

...