2017-01-12 13 views
0

Я пытаюсь разработать WebBrowser на C#, wpf и CefSharp для получения опыта. Я использую 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

Размер веб-браузера может быть больше, чем табуляция, поэтому вы не видите элемент управления. Также попробуйте привести веб-браузер на передний план и убедиться, что он включен. – jdweng

+0

@jdweng, если я добавлю в XAML tabitem.Content все работает. Но я не могу добавить код C#. –

+0

Просто добавьте его в качестве содержимого TabItem, отметьте ключом и используйте его для инициализации. – Shakra

ответ

0

Хорошо, я пытаюсь использовать свойство Address затем инициализации браузера и его груз мой URL-адрес! Так что ответ не используется webBrowser.Load (textboxURL.Text); на новый элемент, но используйте webBrowser.Address = textBoxURL.Text; Спасибо всем!