フレーム内のページをナビゲートする単純な WPF アプリを作成しましたが、フレームの 1 つは画像ビューアーであり、誰かが画像をダブルクリックすると全画面表示 (フレームの外側) になるようにしたいです。
WPFでこれを行う最良の方法は何ですか?
フレーム内のページをナビゲートする単純な WPF アプリを作成しましたが、フレームの 1 つは画像ビューアーであり、誰かが画像をダブルクリックすると全画面表示 (フレームの外側) になるようにしたいです。
WPFでこれを行う最良の方法は何ですか?
「EnterFullScreen」と呼ばれるカスタムRoutedUICommandを自分で作成できるはずです。これは、画像ビューアーを表す Page 内から発生させます。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}" />