Files
DynamicDataDisplay/Charts/Navigation/RectangleSelectionAdorner.cs
2024-02-23 00:46:06 -05:00

49 lines
1.2 KiB
C#

using System.Windows;
using System.Windows.Documents;
using System.Windows.Media;
namespace Microsoft.Research.DynamicDataDisplay.Navigation
{
/// <summary>Helper class to draw semitransparent rectangle over the
/// selection area</summary>
public sealed class RectangleSelectionAdorner : Adorner {
private Rect? border = null;
public Rect? Border {
get { return border; }
set { border = value; }
}
public Brush Fill {
get { return (Brush)GetValue(FillProperty); }
set { SetValue(FillProperty, value); }
}
public static readonly DependencyProperty FillProperty =
DependencyProperty.Register(
"Fill",
typeof(Brush),
typeof(RectangleSelectionAdorner),
new FrameworkPropertyMetadata(
new SolidColorBrush(Color.FromArgb(60, 100, 100, 100)),
FrameworkPropertyMetadataOptions.AffectsRender));
private Pen pen;
public Pen Pen {
get { return pen; }
set { pen = value; }
}
public RectangleSelectionAdorner(UIElement element)
: base(element) {
pen = new Pen(Brushes.Black, 1.0);
}
protected override void OnRender(DrawingContext dc) {
if (border.HasValue) {
dc.DrawRectangle(Fill, pen, border.Value);
}
}
}
}