2009-10-22 2 views
0

프레임의 페이지를 탐색하는 간단한 WPF 응용 프로그램을 만들었지 만 프레임 중 하나는 그림 뷰어이며 누군가가 그림을 두 번 클릭하면 그것은 전체 화면으로 이동합니다 (즉, 프레임 외부).WPF 페이지/프레임 간 통신

WPF에서이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

답변

0

"EnterFullScreen"이라고도하는 사용자 정의 RoutedUICommand을 만들 수 있어야합니다.이 이미지는 이미지 뷰어를 나타내는 페이지에서 발생합니다. CommandBinding을 메인 윈도우에 연결하기 만하면 명령이 실행될 때마다 반응합니다. 당연히 반대쪽도 필요합니다. "ExitFullScreen". 각 페이지가 전체 화면 모드를 종료하기 위해 자체 UI를 제공 할 수 있습니다.

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

하이 드류를 여기

코드가 명령을 definining과 접선을 위해 어떻게 보이는지이다 사과를하기 위해 시작한 것입니다. 코드에서 다른 일을해야하기 때문에 C#에서 호출하는 방법이 있습니까? –

+0

"전화 해"명령을 올리는 것을 의미합니까? 그렇다면 명령 인스턴스에서 Execute를 호출하면됩니다. –