2009-10-22 3 views
0

Я создал простое приложение WPF, которое перемещается по страницам в кадре, но один из фреймов - это программа просмотра изображений, и я хочу, чтобы кто-то дважды щелкнул изображение, которое он переходит в полноэкранный режим (т.е. вне рамки).WPF Communication from Page/Frame to Window

Каков наилучший способ сделать это в WPF?

ответ

0

Вы должны быть в состоянии создать себе заказ 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}" /> 
+0

Привет Дрю, Я только начинаю, поэтому извиняюсь, но мне нужно сделать что-то еще в коде, так есть способ вызвать это из C#? –

+0

Под «вызовом» вы подразумеваете поднять команду? Если да, то вам просто нужно вызвать Execute в экземпляре команды. –