如何在 C# UWP 中获取 Tabpage 的文本框?

How can I get the Textbox of a Tabpage in c# UWP?

我是 c# UWP 的新手,我尝试制作一个 tabcontrol,效果很好。 现在我试图获取tabcontrol的当前文本框,但是没有成功。

我已经在 winforms 中完成了,效果很好:

private RichTextBox GetRichTextBox()
    {
        RichTextBox richtext= null;
        TabPage tab = tabControl1.SelectedTab;

        if (tab != null)
        {
            richtext = tab .Controls[0] as RichTextBox;
        }
        return richtext ;
    }

所以我不知道如何在 UWP 中做同样的事情。

如果有人能帮助我,我会很高兴:D

编辑:

NuGet的导入

xmlns:muxc="using:Microsoft.UI.Xaml.Controls"

这里是来自 MainPage.xaml 的选项卡控件:

<!--Tabcontrol-->
    <muxc:TabView HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
            AddTabButtonClick="TabView_AddTabButtonClick"
            TabCloseRequested="TabView_TabCloseRequested"
            Name="EditTabControl">
        <muxc:TabView.TabStripHeader>
            <Grid x:Name="ShellTitlebarInset" Background="Transparent" />
        </muxc:TabView.TabStripHeader>
        <muxc:TabView.TabStripFooter>
            <Grid x:Name="CustomDragRegion" Background="Transparent" />
        </muxc:TabView.TabStripFooter>
    </muxc:TabView>

下面是我如何使用文本框创建标签页

    void NewDocument(string text, string DocTitle)
    {
        var newTab = new muxc.TabViewItem();
        newTab.Header = DocTitle;
        TextBox tb = new TextBox();
        Thickness margin = tb.Margin;
        margin.Top = 40;

        tb.Text = text;
        tb.Margin = margin;
        tb.HorizontalAlignment = HorizontalAlignment.Stretch;
        tb.VerticalAlignment = VerticalAlignment.Stretch;
        tb.AcceptsReturn = true;
        tb.FontSize = 20;
        tb.IsSpellCheckEnabled = true;
        tb.IsHandwritingViewEnabled = true;
        tb.IsTapEnabled = true;
        ScrollViewer.SetVerticalScrollBarVisibility(tb, ScrollBarVisibility.Auto);
        ScrollViewer.SetHorizontalScrollBarVisibility(tb, ScrollBarVisibility.Auto);

        newTab.Content = tb;
        EditTabControl.TabItems.Add(newTab);
        EditTabControl.SelectedIndex = EditTabControl.TabItems.Count - 1;
    }

您可以尝试先获取TabViewItems的列表,然后再根据索引获取具体的TabItem。然后就可以得到TabViewItem的内容,应该是TextBox Control。

您可以参考以下代码:

          //get the tabitems array
        var TabItems = EditTabControl.TabItems.ToArray();
        //get the tabitem based on the index.
        MUXC.TabViewItem targetItem = (MUXC.TabViewItem)TabItems[0];
        //get the textbox you added to the tabitem
        TextBox content = (TextBox)targetItem.Content;
        //change the text
        content.Text = "This is test";