【问题标题】:Display several html pages in single webbrowser when respective button clicked?单击相应按钮时,在单个网络浏览器中显示多个 html 页面?
【发布时间】:2013-08-14 16:50:01
【问题描述】:

我有 100 个 html 文件。我知道如何为单个 xaml 页面初始化 <phone:webBrowser />。但是,如果我使用这种方法,那么我需要通过在其中初始化 webbrowser 来创建 100 个 xaml 页面,并且我可以通过单击按钮来导航该 xaml 页面。但是,这是浪费时间。

所以,我在 webview.xaml 中创建了 <phone:webBrowser> 并在 chapters.xaml 中创建了 100 个按钮

我要问的是,如果在chapters.xaml 中按下button1chapter1.html 应该在webview.xaml 中打开。如果在chapters.xaml 中按下button2,则chapter2.html 应该在webview.xaml 中打开。像这样,所有 100 个文件都应该在 webview.xaml 中打开,通过相应的按钮单击 chapters.xaml。怎么打开?

我的chapters.xaml 页面:

<Button Content="Chapter 1" Click="webview"/>
<Button Content="Chapter 2" Click="webview"/>
/.../
<Button Content="Chapter 100" Click="webview"/>

我的chapters.cs 页面:

private void webview(object sender, RoutedEventArgs e)
{
     NavigationService.Navigate(new Uri("/webview.xaml", UriKind.Relative));
}

我的webview.xaml 页面:

<phone:WebBrowser x:Name="browser" IsScriptEnabled="True" Margin="-12,0,-11,0" />

我没有在webview.cs页面中给出什么,请帮助我在cs页面中给出什么来打开html页面?提前谢谢。!!!

【问题讨论】:

    标签: c# xaml navigation


    【解决方案1】:

    您可以通过设置每个按钮的Tag 属性为每个按钮附加适当的 HTML 文件名:

    <Button Content="Chapter 42" Tag="chapter42.html" Click="webview"/>
    

    然后使用WebBrowser控件的Navigate方法:

    private void webview(object sender, RoutedEventArgs e)
    {
        var button = (Button)sender;
        var htmlFile = (string)button.Tag;
        browser.Navigate(new Uri(htmlFile, UriKind.Relative));
    }
    

    当然,您也可以从按钮的Content 字符串构造正确的文件名(至少看起来像)。那么就不需要设置Tag了。

    【讨论】:

    • 它将如何在webview.xaml 中打开?
    • 只需在webview.xaml 中有一个名为browser 的WebBrowser 控件,正如您在问题中所示。你的意思是什么?
    • 这里不是这样的。你不能要求或要求什么。
    • 无论如何感谢@clemens。您的代码只需稍作修改即可使用。太感谢了。我在这里更新了工作答案。
    猜你喜欢
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 2019-10-02
    • 2021-02-17
    • 1970-01-01
    • 2018-08-13
    相关资源
    最近更新 更多