나는 RichTextBox
이고 어떤 것은 Buttons(TEMPLET1,TEMPLET2,TEMPLET3....)
입니다. 단추를 처음 클릭 할 때 RichTextBox
의 FlowDocument
에 2 단락의 텍스트가 추가됩니다.
아래는 응용 프로그램의 스크린 샷입니다.
제 질문은, 해당 템플릿 버튼을 두 번째 클릭하면 RichTextBox
에서 특정 템플릿을 어떻게 삭제할 수 있습니까?
모든 아이디어를 환영합니다. 누군가가 이것에 대한 샘플 코드를 제공 할 수 있다면 좋을 것입니다.
미리 감사드립니다.버튼 클릭시 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>
MainWindow.cs
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;
}
}
}
}
나는 단순히 RichTextBox
의 Visibility
을 전환하고있다.
추가 된 템플릿을 삭제할 수 있도록 코드를 수정했습니다. 이게 도움이 되길 바란다.
'RichTextBox'의'FlowDocument'에서 1 개의 전체 템플릿을 삭제 (제거)하고 싶습니다. 예를 들어'Button (TEMPLET4)'를 클릭하면 2 단락이'RichTextBox'에 추가됩니다. 'Button (TEMPLET4)'를 다시 클릭하면 2 단락이 삭제 (완전히 제거됨)되어야합니다. 나는 단 하나의'RichTextBox' 만 사용하고있다. 추가 된 템플릿은'Paragraphs'이다. –
코드는 거의 반복되지 않지만 솔루션을 최적화 할 수 있다고 확신합니다. – Sandesh
- 1. 버튼 클릭시 재설정/지우기
- 2. 버튼 클릭시 고급 DataGrid 지우기?
- 3. 버튼 클릭시 이미지 지우기 방법
- 4. 버튼 클릭시 infopath의 모든 필드 지우기
- 5. C# openxml 단락 지우기
- 6. C# 오른쪽 클릭시 RichTextBox에서 이동 커서
- 7. 두 번째 클릭시 라디오 버튼 지우기/선택 해제
- 8. 버튼 조작으로 단락 처리
- 9. MS Word의 사전에 지저분한 단락 지우기
- 10. PHP Dom을 사용하여 id별로 단락 지우기
- 11. C에서 버튼 클릭시 프로그램 코드 가져 오기
- 12. Android : 버튼 클릭시 체크 박스를 선택 취소하십시오.
- 13. 버튼 클릭시 실행 중지 버튼
- 14. jQuery- 버튼 클릭시 텍스트 색상 변경
- 15. 버튼 누르기에서 스피너 지우기
- 16. 라디오 버튼 지우기 방법?
- 17. 캔버스 지우기 버튼
- 18. 녹아웃이있는 라디오 버튼 지우기
- 19. 지우기 및 종료 버튼
- 20. 자바 스크립트 버튼 지우기
- 21. TinyMce의 포맷 버튼 지우기
- 22. Mobiscroll 지우기 버튼
- 23. 지우기 새로 고침 버튼
- 24. 버튼 클릭시 테이블보기로드하기
- 25. 버튼 클릭시 ScatterViewItem 제거
- 26. 버튼 클릭시 소리 효과
- 27. 버튼 클릭시 ViewModel 확인
- 28. 버튼 클릭시 NSArray가 증가합니다
- 29. 버튼 클릭시 이미지 회전
- 30. 버튼 클릭시 임의의 텍스트
이 사이트를 방문하십시오. http://msdn.microsoft.com/en-us/library/ms752094.aspx – MethodMan
이름으로 RichTextBox는, 안에있는 텍스트 만 허용합니다. 그것은 당신의 이미지에서 이상하게 보일지라도. 목록 상자를 추가하려고하면 단추를 클릭 할 때마다 "X"가 추가됩니다. X를 누르면 해당 번호가 결정되고 해당 줄이 삭제됩니다. – Maximus
@ Maximus 나는 wpf를 처음 사용하면서 샘플 코드를 제공해 줄 수 있습니까? 그것은 큰 도움이 될 것입니다. 감사. –