2009-10-22 77 views
0

我已經構建了一個簡單的WPF應用程序,它可以瀏覽一個框架中的頁面,但其中一個框架是一個圖片查看器,我希望它可以讓雙擊圖片它會全屏顯示(即在幀外)。從頁面/框架到窗口的WPF通信

在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

通過「call that」你是否提高命令?如果是這樣,是的,你只需要在命令實例上調用Execute。 –