私は Windows 8 アプリを持っていますが、最近、「マスター ページ」を使用するようにリファクタリングしました。これは、ヘッダーやフッターなどのいくつかの一般的なコンポーネントを持つ 1 つの「レイアウト」があることを意味します。そのレイアウトには、フレームがあります。別のビューを表示するたびに、フレームにロードします。
これは、起動画面のタイプFrame
が ではなくLayout
、つまりLayoutAwarePage
. これは、 App.xaml.cs で初期化する方法ですOnLaunched
:
Layout rootFrame = Window.Current.Content as Layout;
if (rootFrame == null)
{
rootFrame = new Layout();
ここで問題が発生します。設定のようないくつかのアイテムを含むチャーム フライアウトがあります。これらのフライアウトのレイアウトを含む素敵なビュー (Flayouts.xaml) を作成しました。そのビューのコード ビハインドは次のようになります。
public Flyouts()
{
InitializeComponent();
SettingsPane.GetForCurrentView().CommandsRequested += Flyouts_CommandsRequested;
}
void Flyouts_CommandsRequested(SettingsPane sender, SettingsPaneCommandsRequestedEventArgs args)
{
// add some commands
}
そして、これをアプリで機能させる方法は次のとおりです。
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame == null)
{
rootFrame = new CharmFlyoutLibrary.CharmFrame { CharmContent = new Flyouts() };
彼らがここで行っているのは、Frame
「rootFrame」への割り当てです。しかし、マスターページに切り替えてから/型しかなくなっFrame
たので、CharmFrame を割り当てることができません。この問題を解決するにはどうすればよいですか?Layout
LayoutAwarePage
誰?