Shapes.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using System.Collections.Generic;
  2. using System.Windows;
  3. using System.ComponentModel;
  4. namespace FlowWorkEditDemo
  5. {
  6. class ShapeBase: INotifyPropertyChanged
  7. {
  8. private Point _location;
  9. public Point Location
  10. {
  11. get { return _location; }
  12. set
  13. {
  14. _location = value;
  15. OnPropertyChanged("Location");
  16. }
  17. }
  18. private Size _size;
  19. public Size Size
  20. {
  21. get { return _size; }
  22. set
  23. {
  24. _size = value;
  25. OnPropertyChanged("Size");
  26. }
  27. }
  28. private List<ShapeBase> _links = new List<ShapeBase>();
  29. [Browsable(false)]
  30. public List<ShapeBase> Links
  31. {
  32. get { return _links; }
  33. }
  34. public override string ToString()
  35. {
  36. return GetType().Name;
  37. }
  38. #region INotifyPropertyChanged Members
  39. public event PropertyChangedEventHandler PropertyChanged;
  40. protected void OnPropertyChanged(string name)
  41. {
  42. if (PropertyChanged != null)
  43. PropertyChanged(this, new PropertyChangedEventArgs(name));
  44. }
  45. #endregion
  46. }
  47. class RectangleShape : ShapeBase
  48. {
  49. }
  50. class EllipseShape : ShapeBase
  51. {
  52. }
  53. }