ページ/フレームからウィンドウへのWPF通信
-
05-07-2019 - |
質問
フレーム内のページをナビゲートする単純な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}" />
所属していません StackOverflow