質問

フレーム内のページをナビゲートする単純なWPFアプリを作成しましたが、フレームの1つは画像ビューアーであり、誰かが画像をダブルクリックすると全画面表示(つまり、フレーム)。

WPFでこれを行う最良の方法は何ですか?

役に立ちましたか?

解決

自分でカスタムを作成できるはずです。 RoutedUICommand は、" EnterFullScreen"と呼ばれる場合があり、画像ビューアーを表すページ内から呼び出します。メインウィンドウでこれにCommandBindingをフックするだけで、そのコマンドが実行されるたびに反応します。各ページがフルスクリーンモードを終了するための独自のUIを提供できるように、明らかに反対の" 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}" />
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top