Очень плохой вариант - через конструктор.
private void pre1_Click(object sender, RoutedEventArgs e)
{
this.Content = new Page2("переменная");
}
Плохой вариант - через свойство.
private void pre1_Click(object sender, RoutedEventArgs e)
{
var page = new Page2();
page.Variable = "переменная";
this.Content = page;
}
Человеческий вариант - через сервис, который подтягивается при помощи ioc-контейнера.
private void pre1_Click(object sender, RoutedEventArgs e)
{
_service.Variable = "переменная";
this.Content = new Page2();
}
Затем в Page2, например так
var service = _container.Resolve<IMyService>;
Title = service.Variable;