0

我有一個應用程序,我在Windows 8和Windows 8.1之間使用兩個不同的項目進行多重定位,因爲我使用的是Visual Studio的高級版本。這些項目包含兩個XAML頁面,分別命名爲MainPageHelpPageMainPage在其底部AppBar上包含一個按鈕,該按鈕應該導航至HelpPage。在這兩個版本,爲按鈕的Click事件處理程序是這樣的:應用程序無法導航到Windows 8中的新頁面

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

這裏的問題是錯誤的XAML在HelpPage。在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,但只是沒有導航到正確的頁面。

相關問題