0

我的应用程序中有几个 html 页面。我将这些 html 文件命名为 f1.html、f2.html、f3.html、\... f454.html。所以,我想按用户偏好显示这些文件。因此,我在CustomMessageBox使用中创建了一个文本框和按钮,NuGet以及一个名为 webview.xaml 的 xaml 页面。如果用户在文本框中输入 3,f3.html 应该在 webview.xaml 中打开。

我不知道如何编码。最佳答案将不胜感激。

到目前为止我所做的 C# 代码 [更新];

 TextBox getFileNo = new TextBox();
 getFileNo.Height = 72;
 getFileNo.Width = 150;
 getFileNo.MaxLength = 3;
 TextBox getHashNo = new TextBox();
 getHashNo.Height = 72;
 getHashNo.Width = 150;
 getHashNo.MaxLength = 3;

 string showFile;
 showFile = getFileNo.Text;
 string hashId;
 hashId = getHashNo.text;
 NavigationService.Navigate(new Uri("/webview.xaml?Page=" + site, UriKind.Relative));

在 webview.xaml 中:

        protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
        if (NavigationContext.QueryString.ContainsKey("Page"))
        {
            var page = NavigationContext.QueryString["Page"];
            browser.Navigate(new Uri("/f" + page + ".html#" + hashId, UriKind.Relative));
        }
    }
4

1 回答 1

0

您可以导航到webview.xaml页面,将查询字符串与所需的 hmtl 文件一起传递给它:

NavigationService.Navigate(new Uri(String.Format("/webview.xaml?Page={0}&id={1}", showFile, hashId), UriKind.Relative));

在您的webview.xaml页面中,您可以重写OnNavigatedTo方法来检查传递的页面并在 Web 浏览器中打开它:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    base.OnNavigatedTo(e);

    if (NavigationContext.QueryString.ContainsKey("Page") && NavigationContext.QueryString.ContainsKey("id"))
    {   
        var page = NavigationContext.QueryString["Page"];
        var hashId = NavigationContext.QueryString["id"];

        yourWebBrowser.Navigate(new Uri(String.Format("/f{0}.html#{1}", page, hashId), UriKind.Relative));
    }
}

有关详细信息,请参阅如何在 Windows Phone 上执行页面导航中的传递参数部分。

于 2013-08-28T06:29:41.160 回答