Как динамически создать новый RichTextBox внутри новой вкладки TabControl? (wpf)
Сначала нажимаем кнопку и создаем новую вкладку. Потом нажимаем другую кнопку и помещаем во вкладку RichtextBox. (при этом счетчик увеличивается).
После создания еще одной вкладки и размещения в ней RichtextBox'а, возвращаемся на предыдущую вкладку, но новый RichtextBox не создается (и счетчик не увеличивается, а увеличивается только в последней вкладке)..
Как сделать так, чтобы при возврате на любую ранее созданную вкладку создавался новый RichTextBox и счетчик в каждой из вкладок был свой?
XAML:
<Window x:Class="WpfApp3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp3"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<TabControl x:Name="tabcontrol1" HorizontalAlignment="Left" Height="296" Margin="59,63,0,0" VerticalAlignment="Top" Width="641" SelectionChanged="tabcontrol1_SelectionChanged"/>
<Button Content="New tab" HorizontalAlignment="Left" Margin="181,38,0,0" VerticalAlignment="Top" Width="138" Click="Button_Click"/>
<Button Content="RichTextBox" HorizontalAlignment="Left" Margin="422,38,0,0" VerticalAlignment="Top" Width="147" Click="Button_Click_1"/>
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApp3
{
/// <summary>
/// Логика взаимодействия для MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
TabItem tabitem;
int count = 0;
private void Button_Click(object sender, RoutedEventArgs e)
{
count = 0;
tabitem = new TabItem();
tabitem.Header = "New tab";
tabcontrol1.Items.Add(tabitem);
tabcontrol1.SelectedItem = tabitem;
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
RichTextBox text = new RichTextBox();
FlowDocument myFlowDoc = new FlowDocument();
Run myRun = new Run("Текст номер - ");
Bold myBold = new Bold(new Run(count.ToString()));
Paragraph myParagraph = new Paragraph();
myParagraph.Inlines.Add(myRun);
myParagraph.Inlines.Add(myBold);
// Add the paragraph to the FlowDocument.
myFlowDoc.Blocks.Add(myParagraph);
text.Width = 500;
text.Height = 200;
text.Document = myFlowDoc;
tabitem.Content = text;
count++;
}
private void tabcontrol1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
}
}
}