我是RichText框和流程文档的新手, 我正在尝试使程序类似于word(用户可以编写并添加多个表)
这是我的xaml代码
<DockPanel Grid.Column="1">
<ToolBar x:Name="ToolBarUntenRight" DockPanel.Dock="Top">
<ToggleButton x:Name="ToolStripButtonBold" Command="EditingCommands.ToggleBold" ToolTip="Bold">
<Image Source="Images/Bold.png" Stretch="None"/>
</ToggleButton>
<ToggleButton x:Name="ToolStripButtonItalic" Command="EditingCommands.ToggleItalic" ToolTip="Italic">
<Image Source="Images/Italic.png" Stretch="None"/>
</ToggleButton>
<ToggleButton x:Name="ToolStripButtonUnderline" Command="EditingCommands.ToggleUnderline" ToolTip="Underline">
<Image Source="Images/Underline.png" Stretch="None"/>
</ToggleButton>
<Separator/>
<Button Content="Table" Click="addTable_Click"></Button>
<Button Content="Row +" Click="addrow_Click"></Button>
<Button Content="Row -" Click="removerow_Click"></Button>
<Button Content="Col +" Click="addcolumn_Click"></Button>
<Button Content="Col -" Click="removecolumn_Click"></Button>
</ToolBar>
<RichTextBox x:Name="RichTextControlRight" SpellCheck.IsEnabled="True" VerticalScrollBarVisibility="Auto" acceptsreturn="True" acceptsTab="True" SelectionChanged="RichTextControl_SelectionChanged" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
</DockPanel>
后面的代码
private void addTable_Click(object sender,RoutedEventArgs e)
{
//Add blank line
flowDoc.Blocks.Add(new Paragraph(new Run(" ")));
Table table1 = new Table();
table1.CellSpacing = 0;
table1.Background = brushes.White;
int numberOfColumns = 3;
int numberOfRows = 3;
for (int i = 0; i < numberOfColumns; i++)
{
table1.Columns.Add(new TableColumn());
}
table1.RowGroups.Add(new TableRowGroup());
for (int i = 0; i < numberOfColumns; i++)
{
table1.RowGroups[0].Rows.Add(new TableRow());
for (int j = 0; j < numberOfRows; j++)
{
table1.RowGroups[0].Rows[i].Cells.Add(new TableCell(new Paragraph(new Run(i + " " + j))));
}
}
foreach (var item in table1.RowGroups[0].Rows)
{
foreach (var item2 in item.Cells)
{
item2.BorderBrush = brushes.Black;
item2.BorderThickness = new Thickness(1,1,1);
}
}
flowDoc.Blocks.Add(table1);
//Add blank line
flowDoc.Blocks.Add(new Paragraph(new Run(" ")));
}
当前,我正在努力使添加行,删除行,添加列和删除列功能
我希望用户能够选择他/她想要编辑的表,然后单击“添加行”按钮
但我不知道如何检测到
有办法吗?