by JBrooks
9. September 2013 17:21
In the past I would use part of the page for the page title while the MainPage had a lot of empty space in the center. I wanted to move the title from the page to the MainPage as shown below.

To do this I first made a property on MainPage like this:
public partial class MainPage : UserControl
{
public string Title
{
get { return tbTitle.Text; }
set { tbTitle.Text = value; }
}
…
Then I added this property to the App class:
public partial class App : Application
{
public static string Title
{
set
{
MainPage mp = App.GetMainPage();
mp.Title = value;
}
}
A supporting method in this same App class is GetMainPage() where it gets the MainPage. I use this for other things too.
public static MainPage GetMainPage()
{
if (Application.Current.RootVisual.GetType().Name == "BusyIndicator")
return (MainPage)((ChangeAlerts.Controls.BusyIndicator)
Application.Current.RootVisual).Content;
else
return (MainPage)Application.Current.RootVisual;
}
Then on each individual page I have something like this:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
App.Title = "Manage Accounts";
}
2b4f7d46-82ba-4343-aefd-828d9da850b8|0|.0|27604f05-86ad-47ef-9e05-950bb762570c
Tags:
Silverlight | Development