看來webview控件在根頁面上正常工作,但無法在多個導航場景中保持焦點。這是我用來解決問題的解決方法。
首先,我做了一個新的類作爲導航參數傳遞。
class DetailPayload
{
public Frame DetailFrame { get; set; }
public string Title { get; set; } // may not be important to your software
}
創建一個新的根幀時我導航到有問題的web視圖頁面並傳遞一個DetailPayload對象。
DetailPayload dpl = new DetailPayload();
dpl.DetailFrame = this.Frame;
dpl.Title = itemTitle;
Frame rootFrame = new Frame();
rootFrame.Navigate(typeof(DetailPage), dpl);
Window.Current.Content = rootFrame;
Window.Current.Activate();
我將舊框架存儲在我正在導航到的頁面中的「框架backFrame」中。
DetailPayload dpl = (DetailPayload)navigationParameter;
this.backFrame = dpl.Frame;
我更改後退按鈕控件以觸發不同的事件,並刪除禁用它的部分,如果它是根框架。
<Button x:Name="backButton" Style="{StaticResource BackButtonStyle}" Click="backButton_Click"/>
然後我在backButton_Click函數中調用此函數返回上一頁。
Window.Current.Content = this.backFrame;
Window.Current.Activate();
看來我不得不這樣做,因爲它不是一個實際的控制,因此缺少.Focus()方法。
WebView是否在ListView中? – 2012-08-08 16:36:29
它位於ScrollViewer內部的Grid中。 – Jonathan 2012-08-09 09:11:52