【问题标题】:Dynamically add tabs to tab control将选项卡动态添加到选项卡控件
【发布时间】:2011-05-10 22:40:31
【问题描述】:

我正在尝试将选项卡动态添加到选项卡控件。我在资源中有控制模板:

<ControlTemplate x:Key="memoTab" TargetType="{x:Type TabItem}">  
    <TabItem Header="Memo">  
        <TextBox Name="memoText"
                 HorizontalAlignment="Stretch"
                 VerticalAlignment="Stretch"
                 AcceptsReturn="True"/>
    </TabItem>  
</ControlTemplate>

我在后面的代码中创建标签:

TabItem tab = new TabItem();  
tab.Template = (ControlTemplate) FindResource("memoTab");  
tab.ApplyTemplate();  
TextBox tb = (TextBox) tab.Template.FindName("memoText", tab);  
tb.DataContext = memo; //this is a string created by linq query  
tabControl.Items.Add(tab);

我最终在选项卡控件中看到了选项卡,但它不可选择,而且我看不到其中的任何内容。

【问题讨论】:

    标签: xaml tabcontrol controltemplate tabitem


    【解决方案1】:

    我可以重现它,试试这个方法:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        var content = new TextBlock();
        content.Text = "Hello World! " + new Random().Next(1, 20).ToString();
    
        TabItem tab = new TabItem();
        tab.Header = "Hello world!";
        tab.Content = content;
        tabControl.Items.Add(tab);
    }
    

    用户界面

    <Grid>
        <TabControl Name="tabControl">
            <TabItem Header="Existing tab 1" />
            <TabItem Header="Existing tab 2" />
        </TabControl>
    
        <Button HorizontalAlignment="Left" VerticalAlignment="Bottom" Content="Add Tab" Width="100" Height="30" Click="Button_Click" />
    </Grid>
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      • 2012-04-16
      • 1970-01-01
      相关资源
      最近更新 更多