Вы должны иметь возможность создать собственную RoutedUICommand , которая может называться «EnterFullScreen», которую вы поднимаете изнутри своей страницы, представляющей средство просмотра изображений. Вы просто подключаете CommandBinding к этому в главном окне, чтобы всякий раз, когда эта команда запускалась, вы реагировали. Очевидно, вам понадобится и обратное, «ExitFullScreen», чтобы каждая страница могла предложить свой собственный интерфейс для выхода из полноэкранного режима.
Вот как может выглядеть код для определения и подключения команд:
public partial class MyWindow : Window
{
public static readonly RoutedUICommand EnterFullScreenCommand =
new RoutedUICommand("Enter fullscreen mode",
"EnterFullScreen",
typeof(MyWindow));
public static readonly RoutedUICommand ExitFullScreenCommand =
new RoutedUICommand("Exit fullscreen mode",
"ExitFullScreen",
typeof(MyWindow));
public MyWindow()
{
this.InitializeComponent();
this.CommandBindings.Add(
new CommandBinding(MyWindow.EnterFullScreenCommand,
(sender, args) =>
{
// logic to go fullscreen here
},
(sender, args) =>
{
args.CanExecuted =
// am I already fullscreen?
}));
this.CommandBindings.Add(
new CommandBinding(MyWindow.ExitFullScreenCommand,
(sender, args) =>
{
// logic to exit fullscreen here
},
(sender, args) =>
{
args.CanExecuted =
// am I fullscreen right now?
}));
}
И тогда на вашей странице вы просто используете эту команду следующим образом:
<Button Command="{x:Static myNS:MyWindow.EnterFullScreenCommand}" />