/Main/src/DynamicDataDisplay/Charts/Navigation/RectangleSelectionAdorner.cs
C# | 48 lines | 39 code | 7 blank | 2 comment | 1 complexity | fffa00e57e23884679f381c3a2e5b132 MD5 | raw file
Possible License(s): CC-BY-SA-3.0
1using System.Windows;
2using System.Windows.Documents;
3using System.Windows.Media;
4
5namespace Microsoft.Research.DynamicDataDisplay.Navigation
6{
7 /// <summary>Helper class to draw semitransparent rectangle over the
8 /// selection area</summary>
9 public sealed class RectangleSelectionAdorner : Adorner {
10
11 private Rect? border = null;
12 public Rect? Border {
13 get { return border; }
14 set { border = value; }
15 }
16
17 public Brush Fill {
18 get { return (Brush)GetValue(FillProperty); }
19 set { SetValue(FillProperty, value); }
20 }
21
22 public static readonly DependencyProperty FillProperty =
23 DependencyProperty.Register(
24 "Fill",
25 typeof(Brush),
26 typeof(RectangleSelectionAdorner),
27 new FrameworkPropertyMetadata(
28 new SolidColorBrush(Color.FromArgb(60, 100, 100, 100)),
29 FrameworkPropertyMetadataOptions.AffectsRender));
30
31 private Pen pen;
32 public Pen Pen {
33 get { return pen; }
34 set { pen = value; }
35 }
36
37 public RectangleSelectionAdorner(UIElement element)
38 : base(element) {
39 pen = new Pen(Brushes.Black, 1.0);
40 }
41
42 protected override void OnRender(DrawingContext dc) {
43 if (border.HasValue) {
44 dc.DrawRectangle(Fill, pen, border.Value);
45 }
46 }
47 }
48}