[ 声明:我是 Visual basic 。]的新手。
在一个WPF中,有一个包含 2个TabItems的TabControl:
第一个TabItem包含一组 url 。
第二个TabItem包含包含 cefSharp web view ( 用于. net)的Chromium )的DockPanel
单击tab1中的url时,它会加载包含在tab2中的浏览器中的页。但是,如果我先通过点击初始化浏览器,那么它只会工作。
在进行某些搜索后,VB.Net 看起来不会在一个TabItem中初始化内容,直到它变成可见的。( 对)?
因此,我的问题是,如何强制非选择的选项卡在加载时初始化它的内容,在后台?( IE,所以我不需要先点击标签或者 switch )
编辑:
按照要求,下面是相关代码:
相关的XAML由名为"mainbox"的单个DockPanel组成"
<DockPanel Name="mainBox" Width="Auto" Height="Auto" Background="#afe0ff"/>
下面是我的"代码后面"vb脚本:
Class MainWindow : Implements ILifeSpanHandler, IRequestHandler
Shared web_view1 As CefSharp.Wpf.WebView
Shared web_view2 As CefSharp.Wpf.WebView
Public Sub init(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Loaded
'This is in a DockPanel created on the xaml named mainBox
' set up tabControl:
Dim browserTabs As New TabControl()
browserTabs.BorderThickness = Nothing
Dim tab1 As New TabItem()
tab1.Header ="My Tab"
Dim tab2 As New TabItem()
tab2.Header ="Browser"
Dim tab1Content As New DockPanel()
Dim tab2Content As New DockPanel()
tab1.Content = tab1Content
tab2.Content = tab2Content
browserTabs.Items.Add(tab1)
browserTabs.Items.Add(tab2)
mainBox.Children.Add(browserTabs)
' set up browsers:
Dim settings As New CefSharp.Settings()
settings.PackLoadingDisabled = True
If CEF.Initialize(settings) Then
web_view1 = New CefSharp.Wpf.WebView()
web_view1.Name ="myTabPage"
web_view1.Address ="http://stackoverflow.com/"
web_view2 = New CefSharp.Wpf.WebView()
web_view2.Name ="browserPage"
web_view2.Address ="https://www.google.com"
web_view2.LifeSpanHandler = Me
web_view2.RequestHandler = Me
AddHandler web_view2.PropertyChanged, AddressOf web2PropChanged
tab1Content.Children.Add(web_view1)
tab2Content.Children.Add(web_view2)
End If
End Sub
End Class
因这里,在启动--的默认状态下,tab2 ( web_view2 ) 上的浏览器将不会初始化,直到我单击它的选项卡。希望能把它清理一下。