Вы должны быть в состоянии создать себе заказ RoutedUICommand, может быть, называется «EnterFullScreen», который вы поднимаете с вашей страницы, представляющей средство просмотра изображений. Вы просто привязываете CommandBinding до этого в главном Окне, чтобы всякий раз, когда эта команда была запущена, вы реагируете. Очевидно, вам также понадобится и «ExitFullScreen», чтобы каждая страница могла предложить собственный интерфейс для выхода из полноэкранного режима.
Вот что код может выглядеть для definining и подключения команды:
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}" />
Привет Дрю, Я только начинаю, поэтому извиняюсь, но мне нужно сделать что-то еще в коде, так есть способ вызвать это из C#? –
Под «вызовом» вы подразумеваете поднять команду? Если да, то вам просто нужно вызвать Execute в экземпляре команды. –