2017-01-12 64 views
0

我嘗試在c#,wpf和CefSharp上開發WebBrowser以獲得體驗。 我使用TabControl作爲WebBrowser中的選項卡。 所以我添加webbrowser tabItem.Content但它不顯示。WebBrowser不顯示在tabitem

public partial class MainWindow : Window 
{ 
    ChromiumWebBrowser webBrowser; 

    public MainWindow() 
    { 
     //Browser init 
     CefSettings settings = new CefSettings(); 
     Cef.Initialize(settings); 

     InitializeComponent(); 
     textboxURL.Text = "https://www.google.com"; 
     webBrowser = new ChromiumWebBrowser(); 
     webBrowser.Load(textboxURL.Text); 
     tabItem1.Content = webBrowser; 
    } 

    //App Shutdown logic 
    private void Exit(object sender, StartupEventArgs e) 
    { 
     Cef.Shutdown(); 
    } 
} 

這是XAML代碼。正如你所看到的,我使用DockPanel的URL和按鈕的頂欄。 和TabControl帶有瀏覽器的選項卡。現在我只使用一個webBrowser作爲一個選項卡。

Window x:Class="WebBrowser.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:local="clr-namespace:WebBrowser" 
    xmlns:cefSharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf" 
    mc:Ignorable="d" 
    Title="WebBrowser" Height="362" Width="699" WindowState="Maximized" WindowStartupLocation="CenterScreen"> 
<StackPanel HorizontalAlignment="Stretch" Margin="0,0,0,-1" Height="auto" VerticalAlignment="Stretch" > 
    <DockPanel VerticalAlignment="Top"> 
     <Button x:Name="btnHome" Content="Home" Margin="2" DockPanel.Dock="Left"/> 
     <Button x:Name="btnBack" Content="Back" Margin="2" DockPanel.Dock="Left"/> 
     <Button x:Name="btnNext" Content="Next" Margin="2" DockPanel.Dock="Left"/> 
     <Label x:Name="labelHttp" Content="HTTP" DockPanel.Dock="Left"/> 
     <Button x:Name="btnMenu" Content="Menu" Margin="2" DockPanel.Dock="Right"/> 
     <Button x:Name="btnGo" Content="Go" Margin="2" DockPanel.Dock="Right"/> 
     <Button x:Name="btnRefresh" Content="Refresh" Margin="2" DockPanel.Dock="Right"/> 
     <TextBox x:Name="textboxURL" Margin="2"/> 
    </DockPanel> 
    <TabControl x:Name="tabControl1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,5,0,0" Height="299"> 
     <TabItem Header="TabPage" Name="tabItem1"> 
     </TabItem> 
    </TabControl> 
</StackPanel> 

+0

webrowser的大小可能大於製表符,因此您沒有看到控件。也可以嘗試將Web瀏覽器放在前面並確保它已啓用。 – jdweng

+0

@jdweng如果我在XAML中添加tabitem.Content 所有的作品。但我不能通過C#代碼添加。 –

+0

只需將它作爲TabItem的內容添加,用Key標記並用於初始化。 – Shakra

回答

0

好吧,我嘗試使用地址屬性然後初始化瀏覽器和負載我的網址! 所以答案是不使用webBrowser.Load(textboxURL.Text);在新元素上,但使用webBrowser.Address = textBoxURL.Text; 謝謝大家!