【问题标题】:How to add a WPF Web browser in Child window of MahApps.Metro.Controls form如何在 MahApps.Metro.Controls 窗体的子窗口中添加 WPF Web 浏览器
【发布时间】:2020-06-05 16:38:50
【问题描述】:

我不知道这是否可能。

我尝试了许多不同的方法,但我无法解决。

我有一个 MetroWindow WPF 表单 (MetroHamburgerMenu)。我想将一个 wpf 子窗口作为 Web 浏览器添加到其控制按钮之一。

Web 浏览器的 XAML 如下:

<Grid
    xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

        <Grid>
            <DockPanel>
                <WebBrowser Name="WebBrowser" DockPanel.Dock="Left" Margin="50"
                            HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                </WebBrowser>
            </DockPanel>
        </Grid>
</Grid>

幸运的是,添加了子窗口,但是背景是透明的,因此网页不可见。我已将 Google.com 添加到网络浏览器导航中。

您能否指导如何在子窗口中正确显示网页?

如果问题不清楚,请告诉我。

MainForm

【问题讨论】:

  • 您是否将任何内容放入网络浏览器?我在你的问题中没有看到这一点。
  • @RobertHarvey 是的,我的脚本里面有这个。 #Add View Plan child window $ViewPlan = $Form.FindName("Production_Plan") $ProductionPlanXAML = LoadXaml($viewFolder + '\WebBrowser.xaml') $ProductionPlanChildreader = (New-Object System.Xml.XmlNodeReader $ProductionPlanXAML) $ProductionPlan_Xaml = [Windows.Markup.XamlReader]::Load($ProductionPlanChildreader) $WebBrowser = $ProductionPlan_Xaml.FindName("WebBrowser") $WebBrowser.Navigate("https://Google.com") $ViewPlan.Children.Add($ProductionPlan_Xaml)
  • Web 浏览器导航正常工作。当我在白屏上移动鼠标时,它会显示超链接。此外,当我将鼠标放在谷歌搜索框上时,一个小文本显示为“搜索”。透明度的唯一问题。
  • [xml]$xaml=@" &lt;Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Title="$Title" Height="500" Width="700"&gt; &lt;Grid&gt; &lt;DockPanel&gt; &lt;WebBrowser Name="WebBrowser" DockPanel.Dock="Top" Margin="30"&gt; &lt;/WebBrowser&gt; &lt;/DockPanel&gt; &lt;/Grid&gt; &lt;/Window&gt; "@ #Add-Type -Name 'Windows.Markup.XamlReader' #Read XAML $reader=(New-Object System.Xml.XmlNodeReader $xaml) $Form=[Windows.Markup.XamlReader]::Load($reader) $WebBrowser = $Form.FindName("WebBrowser") $WebBrowser.Navigate("https://Google.com") $Form.ShowDialog()
  • 上面的代码正在运行。我在 MetroHamburgerMenu 中使用了相同的 xaml。

标签: wpf powershell xaml mahapps.metro


【解决方案1】:

感谢大家的回答。

我发现了为什么它是透明的错误。在主窗体窗口中 AllowsTransparency 属性被设置为 True。现在我已将此属性更改为 False,我可以看到网页可见。

这是一个我无法追查的非常愚蠢的错误。

【讨论】:

    猜你喜欢
    • 2019-02-25
    • 1970-01-01
    • 2011-02-18
    • 2018-05-20
    • 2010-09-22
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多