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 算力,解读结果公开显示在下面。

还没有人解读过这个文件。