昨日の記事に対して @biac さんと @okazuki さんからフォローを頂きました。
@kazuakix 某所で「OnLaunched をオーバーライドして先に InitializeFrameAsync を呼ぶと幸せになりますよ」って言われたけど、分かります? (Prismやってない私には、ナンのことやら(汗; )
— 山本康彦@BluewaterSoft (@biac) 2014, 10月 19
@kazuakix @biac コードから見るに、OnLaunchedメソッドをオーバーライドしてbase.OnLaunched(args)を呼んだ後にWindow.Current.ContentからFrameとって設定するのが一番確実そうな気がします。
— かずき@虚脱 (@okazuki) 2014, 10月 19
MvvmAppBase のソースを見ると OnLaunched で Frame を生成していたので、それを利用させてもらう事にしました。
protected override void OnLaunched(LaunchActivatedEventArgs args) { base.OnLaunched(args); var frame = Window.Current.Content as Frame; frame.Language = Windows.Globalization.ApplicationLanguages.Languages[0]; } protected override Task OnLaunchApplicationAsync(LaunchActivatedEventArgs args) { this.NavigationService.Navigate("Main", null); return Task.FromResult<object>(null); }
結果はこの通り。期待通りのフォントが表示されました。