Painter/Component/LassoAdorner.cs
(开头部分) 7KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using Painter.Model;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
namespace Painter.Component
{
public enum Adorners
{
Rect,
Lasso,
}
public abstract class AdornerControl
{
public static AAdorner GetAdorner(UIElement adornedElement)
{
AdornerLayer layer = AdornerLayer.GetAdornerLayer(adornedElement);
IEnumerable<AAdorner> adorners = layer.GetAdorners(adornedElement)?.Cast<AAdorner>();
return adorners?.First();
}
public static AAdorner CreateAdorner(UIElement adornedElement, Adorners adorners)
{
AdornerLayer layer = AdornerLayer.GetAdornerLayer(adornedElement);
layer.GetAdorners(adornedElement)?.ToList()?.ForEach(o => layer.Remove(o));
switch (adorners)
{
case Adorners.Lasso:
layer.Add(new LassoAdorner(adornedElement, new StreamGeometry()));break;
case Adorners.Rect:
layer.Add(new RectAdorner(adornedElement, new RectangleGeometry())); break;
default: break;
}
return layer.GetAdorners(adornedElement)?.Cast<AAdorner>().First();
}
public static void Clear(UIElement adornedElement)
{
AdornerLayer layer = AdornerLayer.GetAdornerLayer(adornedElement);
layer.GetAdorners(adornedElement)?.ToList()?.ForEach(o => layer.Remove(o));
}
}
public class AAdorner:Adorner
{
public Geometry mGeometry;
public DrawingVisual mImage=new DrawingVisual();
public UIElement mAdornedElement;
public List<Point> mStroke = new List<Point>();
public StrokeCollection mSelectedStroke, mUnSelectStrokes;
public System.Windows.Point mLastPoint = new System.Windows.Point();
protected Pen mRenderPen = new Pen(new SolidColorBrush(new Color()
后面还有 119 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。