首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF C# -用户控件,它将TabControl作为子控件包含在TabItem中。

WPF C# -用户控件,它将TabControl作为子控件包含在TabItem中。
EN

Stack Overflow用户
提问于 2022-08-31 20:48:32
回答 1查看 47关注 0票数 -1

我有一个主程序,它有一个tabControl。我正在尝试创建一个可以添加到userControl中的tabItem。我的目标是将一个tabControl添加到userControl中,但是我得到了这个错误:

'[Unknown]' property does not point to a DependencyObject in path '(0).(1)[1].(2)'.

代码在userControl中非常简单

代码语言:javascript
运行
复制
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <TabControl>
            <TabItem>
                
            </TabItem>
        </TabControl>
    </Grid>

如何创建userControl,使其能够包含tabControl,然后添加到tabItem中的mainForm中

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-01 01:25:18

UserControl1.xmal

代码语言:javascript
运行
复制
<UserControl x:Class="WpfApp1.UserControl1"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <TabControl x:Name="tabControl">

        </TabControl>
    </Grid>
</UserControl>

UserControl.cs

代码语言:javascript
运行
复制
public partial class UserControl1 : UserControl
{
    public List<TabItem> TabItem { get; set; } = new List<TabItem>();
    public UserControl1()
    {
        InitializeComponent();
    }
    public override void OnApplyTemplate()
    {
        foreach (TabItem tabItems in TabItem)
            tabControl.Items.Add(tabItems);
        base.OnApplyTemplate();
    }
}

MainWindow.xaml

代码语言:javascript
运行
复制
<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WpfApp1"
        Height="450" Width="800">
    <Grid>
        <local:UserControl1 Height="200" Width="200">
            <local:UserControl1.TabItem>
                <TabItem Header="Tab1">
                    <TextBox/>
                </TabItem>
                <TabItem Header="Tab2">
                    <TextBox/>
                </TabItem>
            </local:UserControl1.TabItem>
        </local:UserControl1>
    </Grid>
</Window>

在这种情况下,TextBox不能通过x:Name="“访问,

因为TextBox是UserControl的孩子,而不是MainWindow的孩子。

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

https://stackoverflow.com/questions/73561741

复制
相关文章

相似问题

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