WPF アプリケーションのさまざまな部分に移動するには、Window、Page、UserControl の違いを理解する必要があります。
ウィンドウはアプリケーション内で独立したウィンドウであり、新しいウィンドウを表示するのに適しています。ただし、複数のウィンドウを管理するのは面倒な場合があるため、多くの場合、動的コンテンツを 1 つのメイン ウィンドウに保持することが推奨されます。
ページは、コンテンツがブラウザ ウィンドウでホストされる XBAP などの Web ベースのシステムに適しています。さまざまなページに構造化されたレイアウトを提供し、ナビゲーション アプリケーションでもよく使用されます。
UserControl は、UI を強化できる再利用可能なコントロールです。 MVVM パターンの特定のビューのカスタム機能または複雑な XAML コードをカプセル化できます。
ウィンドウ間のナビゲーション:
<code class="language-csharp">var NewWindow = new MyWindow(); newWindow.Show();</code>
推奨されるナビゲーション方法:
動的コンテンツ領域 (ContentControl) を使用します:
<code class="language-xaml"><ContentControl x:Name="ContentArea"></ContentControl></code>
<code class="language-csharp">ContentArea.Content = new MyUserControl();</code>
ナビゲーションへのより強力なアプローチについては、MVVM 設計パターンを検討してください。
<code class="language-xaml"><ContentControl Content="{Binding CurrentPageViewModel}"></ContentControl></code>
<code class="language-xaml"><DataTemplate DataType="{x:Type local:HomeViewModel}"><HomeView></HomeView></DataTemplate></code>
<code class="language-csharp">// 导航按钮的命令 public ICommand ChangePageCommand => new RelayCommand<PageViewModel>(vm => CurrentPageViewModel = vm);</code>
このアプローチにより、WPF アプリケーションでのシームレスなナビゲーションとデータ バインディングが可能になります。
以上がウィンドウ、ページ、またはユーザー コントロール: 私のアプリにはどの WPF ナビゲーション アプローチが適していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。