You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.7 KiB
55 lines
1.7 KiB
using System.Windows;
|
|
using System.Windows.Input;
|
|
using System.Windows.Media;
|
|
|
|
namespace HMIControl
|
|
{
|
|
|
|
public class LinkPin : FrameworkElement
|
|
{
|
|
public static readonly DependencyProperty BackgroudProperty =
|
|
DependencyProperty.Register("Background", typeof(SolidColorBrush), typeof(LinkPin),
|
|
new FrameworkPropertyMetadata(Brushes.Navy, FrameworkPropertyMetadataOptions.AffectsRender));
|
|
public SolidColorBrush Background
|
|
{
|
|
get
|
|
{
|
|
return (SolidColorBrush)base.GetValue(BackgroudProperty);
|
|
}
|
|
set
|
|
{
|
|
base.SetValue(BackgroudProperty, value);
|
|
}
|
|
}
|
|
|
|
ControlAdorner parent;
|
|
|
|
public Point RelativePosition { get; set; }//PIN在控件上的相对位置
|
|
|
|
public ConnectOrientation Orientation { get; set; }
|
|
|
|
public LinkPin() { }
|
|
|
|
public LinkPin(ConnectOrientation o, Point p)
|
|
{
|
|
this.Cursor = Cursors.Cross;
|
|
this.RelativePosition = p;
|
|
this.Orientation = o;
|
|
|
|
}
|
|
|
|
protected override void OnRender(DrawingContext drawingContext)
|
|
{
|
|
Brush brush = Background;
|
|
drawingContext.DrawRectangle(Brushes.Transparent, null, new Rect(0, 0, 14, 14));
|
|
drawingContext.DrawRectangle(Brushes.Lavender, new Pen(brush, 1), new Rect(0, 0, 10, 10));
|
|
}
|
|
|
|
public ConnectInfo GetInfo()
|
|
{
|
|
parent = Parent as ControlAdorner;
|
|
var element = parent.AdornedElement as HMIControlBase;
|
|
return element.GetInfo1(this.Orientation, this.RelativePosition);
|
|
}
|
|
}
|
|
}
|
|
|