如何在容器中返回选定的选项卡项控件

时间:2011-12-24 17:55:24

标签: c# wpf webbrowser-control

我有一个旧窗口WebBrowser,我有:

public WebBrowser getCurrentWebBrowser()  
{  
    return (WebBrowser)TabControl.SelectedTab.Controls[0];
}

我想知道如何在WPF中做同样的事情。

感谢您的帮助。

1 个答案:

答案 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)。