メニューボタンが読み込まれるフレームを含むXAMLスタートページを備えたC#で記述されたXAML/MonoGameハイブリッドゲームであるWinMetroアプリがあります。
これをWinMetroストアに送信すると、基本的にアプリのスタート画面のスクリーンショットを含むテストプロトコルが返され、スタート画面の2つのボタンが赤で囲まれて「機能が機能していません」と表示されます。私のセットアップ(2つの異なるWin 8マシン+シミュレーター)でこれらのボタンを使用する際に問題が発生したことはありません。
もう1つの奇妙なことは、戻るボタンが表示されることです。これは、フレームが開始フレームである場合、戻るボタンのIsEnabledをFalseに明示的に設定しているため、表示できないはずです(元々、XAMLでコンテンツのCanGoBackにIsEnabledプロパティバインディングを設定していました)。フレームですが、それも機能しませんでした)。
これは、ユーザーがナビゲートしたときに戻るボタンの表示を設定するためのコードです。
public MainPage()
{
this.InitializeComponent();
contentFrame.Navigate(typeof(MainFrame));
Window.Current.SizeChanged += VisualStateChanged;
contentFrame.Navigated += contentFrame_Navigated;
}
void contentFrame_Navigated(object sender, NavigationEventArgs e)
{
ApplicationViewState visualState = ApplicationView.Value;
VisualStateManager.GoToState((Control)e.Content,
visualState.ToString(), false);
if (e.Content is MainFrame)
backButton.IsEnabled = false;
else
backButton.IsEnabled = contentFrame.CanGoBack;
}
private void backButton_Click(object sender, RoutedEventArgs e)
{
contentFrame.GoBack();
}
internal void GoHome()
{
while( contentFrame.CanGoBack )
contentFrame.GoBack();
}
GoHome()は、ユーザーがゲームを終了することを選択した場合にゲームページから呼び出されます(そこからスタートページに戻るボタンも表示されません)。
private void QuitGame(IUICommand command)
{
App.ClearGame();
Window.Current.Content = App.MainPage;
Window.Current.Activate();
App.MainPage.GoHome();
}
そして、メインフレームのボタンのコードは次のとおりです。
private void onePlayerButton_Click(object sender, RoutedEventArgs e)
{
this.Frame.Navigate(typeof(OnePlayerFrame));
}
private void twoPlayersButton_Click(object sender, RoutedEventArgs e)
{
this.Frame.Navigate(typeof(TwoPlayersFrame));
}
だから私の質問は、SurfaceデバイスとデスクトップPCで戻るボタンの可視性を異なる方法で処理できるか、またはテスターが戻るボタンが表示されているスクリーンショットをどのように取得できるかということです。そして、Windows Metroストアにアプリを送信するときに同様の経験をした人はいますか?
マイクロソフトがテストプロトコルの詳細を提供してくれることを本当に望んでいます。長期的には、すべての人の時間を節約できます...