首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现打开新标签

问实现打开新标签
EN

Stack Overflow用户
提问于 2010-08-22 21:08:16
回答 2查看 2.9K关注 0票数 0

如何在C#/WPF中实现一个可以打开/关闭新选项卡的应用程序?我在想,我将不得不创建一个“模板”用户控件,并以编程方式创建一个新的控件实例(选项卡项),然后将其添加到选项卡控件中?

我是C#/WPF的新手,那么我该如何开始使用它呢?

另一件事是,当我没有ID时,我如何修改或访问子控件。

EN

回答 2

Stack Overflow用户

发布于 2010-08-22 22:22:52

你可以用ObservableCollections很容易地做到这一点。

xaml

代码语言:javascript
复制
    <TabControl ItemsSource="{Binding EmpList }">
        <TabControl.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding FirstName }"></TextBlock>
            </DataTemplate>
        </TabControl.ItemTemplate>
    </TabControl>

代码评估您正在使用MVVM

在ViewModel中创建一个EmpList Observablecollection集合

因此,当您在Observablecollection中添加新对象时,选项卡控件将侦听更改并为您添加新选项卡。

票数 1
EN

Stack Overflow用户

发布于 2010-08-22 22:07:11

这是我使用的代码。

代码语言:javascript
复制
    private void addtabbutton_Click(object sender, RoutedEventArgs e)
    {
        // We use tabItem1 and codebox as template<typename T> for the new objects.
        var tabitem = new System.Windows.Controls.TabItem();
        tabitem.ContextMenu = tabItem1.ContextMenu;
        tabitem.ContextMenuClosing += tabItem1_ContextMenuClosing;
        tabitem.ContextMenuOpening += tabItem1_ContextMenuOpening;
        tabitem.Header = "Code" + NewTabItemIndex.ToString();
        tabitem.Height = tabItem1.Height;
        tabitem.Width = tabItem1.Width;
        tabitem.HorizontalAlignment = tabItem1.HorizontalAlignment;
        tabitem.VerticalAlignment = tabItem1.VerticalAlignment;
        tabitem.DataContext = tabItem1.DataContext;
        var textbox = new System.Windows.Controls.TextBox();
        tabitem.Content = textbox;
        textbox.DataContext = codebox.DataContext;
        textbox.LayoutTransform = codebox.LayoutTransform;
        textbox.AcceptsReturn = true;
        textbox.AcceptsTab = true;
        textbox.Height = this.codebox.Height;
        textbox.HorizontalAlignment = codebox.HorizontalAlignment;
        textbox.VerticalAlignment = codebox.VerticalAlignment;
        NewTabItemIndex++;
        this.tabControl1.Items.Add(tabitem);
    }

您可以看到,我从框中的一个选项卡项tabItem1开始。然后我基本上将它的特征复制到一个新的TabItem中。然后,我将该TabItem添加到我的TabControl中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3541578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档