C# 单击按钮删除RichTextBox中的段落
我有一个C# 单击按钮删除RichTextBox中的段落,c#,wpf,richtextbox,flowdocument,C#,Wpf,Richtextbox,Flowdocument,我有一个RichTextBox和一些按钮(TEMPLET1、TEMPLET2、TEMPLET3…)。当第一次单击按钮时,向RichTextBox的FlowDocument添加两段文本时,下面是应用程序的屏幕截图。 我的问题是,当我第二次单击相应的模板按钮时,如何从RichTextBox中删除特定模板。欢迎任何想法。如果有人能提供这方面的示例代码,那就太好了。提前谢谢。我不清楚您的删除部分。您想在屏幕上隐藏它还是一起删除标签 我有一个简单的解决方案,如果你只是想在屏幕上隐藏它 编辑 更改了答案,因
RichTextBox
和一些按钮(TEMPLET1、TEMPLET2、TEMPLET3…)
。当第一次单击按钮时,向RichTextBox
的FlowDocument
添加两段文本时,下面是应用程序的屏幕截图。我的问题是,当我第二次单击相应的模板按钮时,如何从
RichTextBox
中删除特定模板。欢迎任何想法。如果有人能提供这方面的示例代码,那就太好了。
提前谢谢。我不清楚您的删除部分。您想在屏幕上隐藏它还是一起删除标签 我有一个简单的解决方案,如果你只是想在屏幕上隐藏它 编辑 更改了答案,因为您已向我提供了详细信息 MainWindow.xaml
<DockPanel>
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
<Button Content="Template 1" Click="Button_Click_1" Focusable="False"/>
<Button Content="Template 2" Click="Button_Click_2" Focusable="False"/>
<Button Content="Template 3" Click="Button_Click_3" Focusable="False"/>
<Button Content="Template 4" Click="Button_Click_4" Focusable="False"/>
</StackPanel>
<RichTextBox x:Name="rchOne">
<FlowDocument x:Name="flowDoc" />
</RichTextBox>
</DockPanel>
我只是简单地切换RichTextBox
的可见性
我已经修改了代码,以便您现在可以删除添加的模板。我希望这能有所帮助。试试这个网站。。如名称所示,RichTextBox只允许内部文本。虽然在你的形象中看起来很奇怪。尝试添加列表框,每当单击按钮时,添加“X”,当按下X时,您确定其编号并删除相应的行。@Maximus能否请您提供一个示例代码,因为我是wpf的新手。那将是一个很大的帮助。谢谢。删除3行文本,如果你调整窗口大小,并且每个条目只占用2行,这也适用吗?@PawBaltzersen很抱歉误导,实际上添加了2个段落,我想单击按钮删除它们。请再次检查我的问题我已经编辑了它。我想从RichTextBox
的FlowDocument
中删除(删除)1个完整的模板。例如,如果我单击按钮(模板4)
,则会在RichTextBox
中添加两个段落。当我再次单击按钮(模板4)
时,添加的2个段落应被删除(完全删除)。我只使用了1个RichTextBox
,添加到其中的模板是段落
。代码有点重复,但我相信您可以优化解决方案。
public partial class MainWindow : Window
{
private bool paraOneAdded = false;
private bool paraTwoAdded = false;
private bool paraThreeAdded = false;
private bool paraFourAdded = false;
public MainWindow()
{
InitializeComponent();
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
if (!paraOneAdded)
{
Paragraph para = new Paragraph();
para.Name = "temp1";
para.Inlines.Add(new Bold(new Run("Template 1.")));
para.Inlines.Add(new LineBreak());
para.Inlines.Add("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean Condimentum, orci eu placerat interdum, odio lacus faucibus ex, et viverra justo sem nec augue.");
flowDoc.Blocks.Add(para);
paraOneAdded = true;
}
else
{
var myPara = flowDoc.Blocks.FirstOrDefault(p => p.Name == "temp1");
if (myPara != null)
{
flowDoc.Blocks.Remove(myPara);
paraOneAdded = false;
}
}
}
private void Button_Click_2(object sender, RoutedEventArgs e)
{
if (!paraTwoAdded)
{
Paragraph para = new Paragraph();
para.Name = "temp2";
para.Inlines.Add(new Bold(new Run("Template 2.")));
para.Inlines.Add(new LineBreak());
para.Inlines.Add("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean Condimentum, orci eu placerat interdum, odio lacus faucibus ex, et viverra justo sem nec augue.");
flowDoc.Blocks.Add(para);
paraTwoAdded = true;
}
else
{
var myPara = flowDoc.Blocks.FirstOrDefault(p => p.Name == "temp2");
if (myPara != null)
{
flowDoc.Blocks.Remove(myPara);
paraTwoAdded = false;
}
}
}
private void Button_Click_3(object sender, RoutedEventArgs e)
{
if (!paraThreeAdded)
{
Paragraph para = new Paragraph();
para.Name = "temp3";
para.Inlines.Add(new Bold(new Run("Template 3.")));
para.Inlines.Add(new LineBreak());
para.Inlines.Add("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean Condimentum, orci eu placerat interdum, odio lacus faucibus ex, et viverra justo sem nec augue.");
flowDoc.Blocks.Add(para);
paraThreeAdded = true;
}
else
{
var myPara = flowDoc.Blocks.FirstOrDefault(p => p.Name == "temp3");
if (myPara != null)
{
flowDoc.Blocks.Remove(myPara);
paraThreeAdded = false;
}
}
}
private void Button_Click_4(object sender, RoutedEventArgs e)
{
if (!paraFourAdded)
{
Paragraph para = new Paragraph();
para.Name = "temp4";
para.Inlines.Add(new Bold(new Run("Template 4.")));
para.Inlines.Add(new LineBreak());
para.Inlines.Add("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean Condimentum, orci eu placerat interdum, odio lacus faucibus ex, et viverra justo sem nec augue.");
flowDoc.Blocks.Add(para);
paraFourAdded = true;
}
else
{
var myPara = flowDoc.Blocks.FirstOrDefault(p => p.Name == "temp4");
if (myPara != null)
{
flowDoc.Blocks.Remove(myPara);
paraFourAdded = false;
}
}
}
}