4

I have a page transition ( a control ) in the MainWindow , I have many user control pages , I want to access the page transition in the MainWindow from my user control page ? How do I do that? I tried :

        Story page = new Story();
        NavigationService nav = NavigationService.GetNavigationService(this);
        // Navigate to the page, using the NavigationService
      //  if (nav != null)
       // { 
        //    nav.Navigate(page);
            MainWindow test = new MainWindow();
            test.pageTransition1.ShowPage(page);

    //    }

3 Answers 3

12
Application.Current.MainWindow

Using this you can access the MainWindow from any place.

Sign up to request clarification or add additional context in comments.

Comments

2

You could find the WpfPageTransitions.PageTransition control like this from the UserControls code behind:

public static WpfPageTransitions.PageTransition FindPageControl(DependencyObject child)
{
    DependencyObject parent= VisualTreeHelper.GetParent(child);

    if (parent == null) return null;

    WpfPageTransitions.PageTransition page = parent as WpfPageTransitions.PageTransition;
    if (page != null)
    {
        return page;
    }
    else
    {
        return FindPageControl(parent);
    }
}

Then you can use it like this:

this.FindPageControl(this).ShowPage(...);

4 Comments

hey thanks for the reply but PageTransition is not a WPF control , i added in the control from other source ..
so when i do the above , PageTransition will be missing
i added reference of the page transition and add to controls tab , i got this page transitions from here : codeproject.com/Articles/197132/Simple-WPF-Page-Transitions
You will just have to reference the object with it's full namespace. I've edited my code. Perhaps you could edit your question too, this would clarify it for other users.
1

Create A Method Inside Main Window for Choosing Page Transition

 public   void ChangePage()
        {
            pageTransitionControl.ShowPage(new NewData());
        }

Then in Child control

private void btnUpdate_Click(object sender,RoutedEventArgs e)
        {

            MainWindow win = (MainWindow)Window.GetWindow(this);
            win.ChangePage();
        }

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.