我有一个 Win Metro 应用程序,它是一个用 C# 编写的 XAML/MonoGame 混合游戏,其 XAML 起始页包含一个加载有菜单按钮的框架。
将此提交到 Win Metro 商店后,我得到了一个测试协议,基本上只包含我的应用程序开始屏幕的屏幕截图,并显示“功能不起作用”,开始屏幕的两个按钮用红色圈出。在我的设置中使用这些按钮从来没有问题(两个不同的 Win 8 机器 + 模拟器)。
另一个奇怪的事情是后退按钮是可见的,这应该是不可能的,因为如果框架是开始框架,我将后退按钮的 IsEnabled 显式设置为 False(最初我在 XAML 中将 IsEnabled 属性绑定设置为内容的CanGoBack框架,但这也不起作用)。
这是在用户导航时设置后退按钮可见性的代码。
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();
}
这是 MainFrame 中按钮的代码:
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 设备上后退按钮的可见性处理方式是否不同,或者测试人员如何获得后退按钮可见的屏幕截图?并且 - 在将应用程序提交到 Windows Metro 商店时,你们中是否有人有类似的经历?
我真的希望微软能在测试协议中提供更多细节,从长远来看,它会为每个人节省时间......