| 1234567891011121314151617181920212223242526272829303132333435363738 |
- using System.Linq;
- using System.Windows;
- using System.Windows.Media;
- namespace SHJX.Service.WorkFlowEdit
- {
- class RubberbandAdorner : DragAdorner
- {
- private Pen _pen;
- public RubberbandAdorner(DiagramView view, Point start)
- : base(view, start)
- {
- _pen = new Pen(Brushes.Black, 2);
- }
- protected override bool DoDrag()
- {
- InvalidateVisual();
- return true;
- }
- protected override void EndDrag()
- {
- if (DoCommit)
- {
- var rect = new Rect(Start, End);
- var items = View.Items.Where(p => p.CanSelect && rect.Contains(p.Bounds));
- View.Selection.SetRange(items);
- }
- }
- protected override void OnRender(DrawingContext dc)
- {
- dc.DrawRectangle(Brushes.Transparent, _pen, new Rect(Start, End));
- }
- }
- }
|