0

我有一个 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 商店时,你们中是否有人有类似的经历?

我真的希望微软能在测试协议中提供更多细节,从长远来看,它会为每个人节省时间......

4

2 回答 2

1

这是一个关于常见 Windows 应用商店认证失败以及如何修复它们可能会有所帮助的博客文章系列。具体来说,请查看有关“应用程序必须功能齐全”的文章。导致此故障的主要问题是:

  • 似乎未完成
  • 功能缺失/损坏
  • 没有提供足够的信息

在您的场景中,可能发生的情况是测试人员导航到另一个页面,然后返回您的主页/起始页面(并且后退按钮似乎向后导航到他们所在的任何子页面)......取决于您的方式当然,实现了后退按钮。

您能否详细说明开始屏幕上用红色圈出的两个按钮的作用,或者提供点击处理程序中的代码示例?

于 2012-12-30T02:53:45.857 回答
0

在没有解释的情况下投反对票?至少澄清什么对这个问题没有用......

无论如何,如果其他人面临类似问题,我想我会跟进最终使该应用程序正常工作的方法。

在提交通过认证获得应用程序之前,我进行了两项更改:我更改了顺序

 contentFrame.Navigated += contentFrame_Navigated;

 contentFrame.Navigate(typeof(MainFrame));

(所以和上面一样,这意味着 backButton.IsEnabled 在启动时在事件处理程序中显式设置为 false)

我还删除了对

ApplicationData.Current.LocalFolder.CreateFileAsync("startuplog.txt", CreationCollisionOption.ReplaceExisting);

在我在本地通过 WACK 进行调试时留下的 App.xaml.cs 中。

在这些更改之后,它起作用了。

于 2013-01-11T09:47:38.503 回答