看来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