我有一个应用程序,我在Windows 8和Windows 8.1之间使用两个不同的项目进行多目标定位,因为我使用的是Visual Studio的快速版本。这些项目包含两个名为MainPage
和HelpPage
的XAML页面。 MainPage
在其底部AppBar上包含一个按钮,该按钮应该导航到HelpPage
。在这两个版本中,按钮的单击事件的处理程序如下所示:
Private Sub btnHelp_Click(sender As Object, e As RoutedEventArgs) Handles btnHelp.Click
If Me.Frame IsNot Nothing Then
Dim result = Me.Frame.Navigate(GetType(HelpPage)).ToString
Debug.WriteLine(result)
End If
End Sub
在Windows 8.1版本中,这会成功将应用导航到HelpPage
并在“输出”窗口中写入True
。
在Windows 8版本中,此过程保留在同一页面上,并在“输出”窗口中写入False
。
我在程序中添加了一个断点,所以我知道点击处理程序工作正常,但页面什么也没做。
有谁知道这里可能出现什么问题?
答案 0 :(得分:0)
这里的问题是HelpPage
中的错误XAML。在Windows版本之间的杂耍中,我忽略了一些复制的代码,这些代码在Windows 8中不起作用,但在Windows 8.1中起作用。即,代码是TextBlock的样式属性。我不得不改变我的XAML:
<TextBlock Style="{StaticResource SubheaderTextStyle}">Subheader Text</TextBlock>
到
<TextBlock Style="{StaticResource ResourceKey=SubheaderTextStyle}">Subheader Text</TextBlock>
出于某种原因,错误列表没有提到这一点,尽管XAML编辑器确实用蓝色突出显示了顶部样式声明。此外,应用程序编译正常,并且在调用HelpPage
时没有抛出任何异常,但只是没有导航到正确的页面。