Advertisement
Guest User

Untitled

a guest
Oct 24th, 2014
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. public class RichEditBoxExtended : RichEditBox
  2. {
  3. public static readonly DependencyProperty RtfTextProperty =
  4. DependencyProperty.Register(
  5. "RtfText", typeof (string), typeof (RichEditBoxExtended),
  6. new PropertyMetadata(default(string), RtfTextPropertyChanged));
  7.  
  8. private bool _lockChangeExecution;
  9.  
  10. public RichEditBoxExtended()
  11. {
  12. TextChanged += RichEditBoxExtended_TextChanged;
  13. }
  14.  
  15. public string RtfText
  16. {
  17. get { return (string) GetValue(RtfTextProperty); }
  18. set { SetValue(RtfTextProperty, value); }
  19. }
  20.  
  21. private void RichEditBoxExtended_TextChanged(object sender, RoutedEventArgs e)
  22. {
  23. if (!_lockChangeExecution)
  24. {
  25. _lockChangeExecution = true;
  26. string text;
  27. Document.GetText(TextGetOptions.None, out text);
  28. if (string.IsNullOrWhiteSpace(text))
  29. {
  30. RtfText = "";
  31. }
  32. else
  33. {
  34. Document.GetText(TextGetOptions.FormatRtf, out text);
  35. RtfText = text;
  36. }
  37. _lockChangeExecution = false;
  38. }
  39. }
  40.  
  41. private static void RtfTextPropertyChanged(DependencyObject dependencyObject,
  42. DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
  43. {
  44. var rtb = dependencyObject as RichEditBoxExtended;
  45. if (rtb == null) return;
  46. if (!rtb._lockChangeExecution)
  47. {
  48. rtb._lockChangeExecution = true;
  49. rtb.Document.SetText(TextSetOptions.FormatRtf, rtb.RtfText);
  50. rtb._lockChangeExecution = false;
  51. }
  52. }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement