我有一个旧窗口WebBrowser
,我有:
public WebBrowser getCurrentWebBrowser()
{
return (WebBrowser)TabControl.SelectedTab.Controls[0];
}
我想知道如何在WPF中做同样的事情。
感谢您的帮助。
答案 0 :(得分:0)
您可以挂钩TabContols的SelectionChanged事件,然后在回调中使用这样的代码......
private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
HeaderedContentControl hcc = e.AddedItems[0] as HeaderedContentControl;
if (hcc != null)
{
WebBrowser webBrowser = hcc.Content as WebBrowser;
if (webBrowser != null)
{
// do something...
}
}
}
如果你有一个WebBrowser在多个标签中,你可以命名TabItems并调整你的回调...
<TabItem Header="Browser" Name="MyBrowserTabItem">
<WebBrowser/>
</TabItem>
private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
HeaderedContentControl hcc = e.AddedItems[0] as HeaderedContentControl;
if (hcc != null && hcc.Name == "MyBrowserTabItem")
{
WebBrowser webBrowser = hcc.Content as WebBrowser;
if (webBrowser != null)
{
// do something...
}
}
}
SelectionChangedEventArgs的'AddedItems'属性是自上次触发事件以来已选择的对象列表。对于TabControl,AddedItems通常应该具有1的长度,并且单个元素应该是HeaderedContentControl的实例(即TabItem)。