首页 > 其他分享 >WPF canvas draw lines via brush

WPF canvas draw lines via brush

时间:2024-03-23 23:22:06浏览次数:23  
标签:draw via Windows lines System cvs pos using line

//xaml
<Window x:Class="WpfApp11.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp11"
        mc:Ignorable="d" WindowState="Maximized"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Canvas Background="White" Name="cvs" MouseLeftButtonDown="cvs_MouseLeftButtonDown"
                MouseMove="cvs_MouseMove" MouseUp="cvs_MouseUp"/>
    </Grid>
</Window>


//xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApp11
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        Point _pos;
        bool _isDrawing;
        Brush _stroke=Brushes.Black;
        public MainWindow()
        {
            InitializeComponent();
        }

        private void cvs_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            _isDrawing = true;
            _pos = e.GetPosition(cvs);
            cvs.CaptureMouse();
        }

        private void cvs_MouseMove(object sender, MouseEventArgs e)
        {
            if(_isDrawing)
            {
                Line line = new Line();
                line.X1 = _pos.X;
                line.Y1 = _pos.Y;
                _pos=e.GetPosition(cvs);
                line.X2 = _pos.X;
                line.Y2= _pos.Y;
                line.Stroke = _stroke;
                line.StrokeThickness = 10;
                cvs.Children.Add(line);
            }
        }         

        private void cvs_MouseUp(object sender, MouseButtonEventArgs e)
        {
            _isDrawing=false;
            cvs.ReleaseMouseCapture();
        }
    }
}

 

 

 

 

 

 

 

标签:draw,via,Windows,lines,System,cvs,pos,using,line
From: https://www.cnblogs.com/Fred1987/p/18091895

相关文章

  • A Survey on Large Language Model Hallucination via a Creativity Perspective
    本文是LLM系列文章,针对《ASurveyonLargeLanguageModelHallucinationviaaCreativityPerspective》的翻译。从创造力的角度考察大型语言模型的幻觉摘要1引言2LLM时代的幻觉3幻觉中隐藏的创造力4大型语言模型的创造力5利用LLM幻觉进行创造6结论和未......
  • CorelDRAW2024专业的平面设计软件,专注于矢量图形编辑与排版
    CorelDRAW2024是一款专业的平面设计软件,专注于矢量图形编辑与排版。它可以提供无缝的图形、版面、插图、照片编辑、摹图、网络图像、印刷项目、美术作品、排版等设计体验,并可应用于商标设计、标志制作、模型绘制、插图描画、排版及分色输出等领域。CDR2024绿色版下载链接:ht......
  • 【大语言视觉助手+LLaVA1.5】23.10.LLaVA-1.5改善后视觉语言大模型: Improved Baselin
    LLaVa家族官方资源汇总:项目主页||https://huggingface.co/liuhaotian23.04.LLaVA1.0论文:LargeLanguageandVisionAssistant(VisualInstructionTuning)23.06LLaVA-Med(医学图片视觉助手):TrainingaLargeLanguage-and-VisionAssistantforBiomedicineinOne......
  • CorelDRAW2024中文版功能全面且强大的平面设计软件
    CorelDRAW2024是一款功能强大的专业平面设计软件,它提供了丰富的绘图工具和特效,使用户能够轻松创建各种类型的设计,如图标、海报、宣传册等。无论是从事平面设计、插画、品牌设计还是其他创意领域,CorelDRAW2024都能满足你的需求,帮助你释放无限的创意潜力,让你的设计脱颖而出。C......
  • Excalidraw:绘制图形的新利器
    摘要:Excalidraw是一款简洁设计、直观易用的绘图应用,用户可以通过它创建流程图、示意图、架构图等各种图形。除了提供手绘效果外,Excalidraw还支持多人实时协作编辑,并提供端到端加密以确保用户隐私和数据安全。在技术层面上,Excalidraw可以直接通过浏览器访问,也可以通过Docker......
  • CorelDRAW2024中文免费专业平面设计软件,让创意无限飞翔!
    CorelDRAW2024是一款功能强大的专业平面设计软件,它提供了丰富的绘图工具和特效,使用户能够轻松创建各种类型的设计,如图标、海报、宣传册等。无论是从事平面设计、插画、品牌设计还是其他创意领域,CorelDRAW2024都能满足你的需求,帮助你释放无限的创意潜力,让你的设计脱颖而出。......
  • Jailbreaking Large Language Models in Few Queries via Disguise and Reconstructio
    本文是LLM系列文章,针对《MakingThemAskandAnswer:JailbreakingLargeLanguageModelsinFewQueriesviaDisguiseandReconstruction》的翻译。让他们问答:通过伪装和重建在少数查询中打破大型语言模型的牢笼摘要1引言2背景和问题陈述3LLM微调中的安全偏......
  • CorelDraw 24.5.0.733 Crack + 2024序列号免费下载
    CorelDRAW2024最新版简介图形设计软件CorelDRAWGraphicsSuite2024零售版2024年3月完整版(25.0)正式发布!该更新包含了针对CorelDRAWGraphicsSuite2022年3月版(24.0版)的功能增强以及性能与稳定性改进.CorelDRAW2022增强了图像编辑和导出功能,新功能加快了图片编辑速度,......
  • Be Your Own Teacher: Improve thePerformance of Convolutional Neural Networks via
    摘要本文中,提出了一种名为自蒸馏的通用训练框架,该框架通过缩小网络的规模而不是扩大网络的规模,而提高卷积神经网络的性能。传统的知识蒸馏是一种网络之间的知识转换方法,它迫使学生神经网络接近预先训练的教师神经网络的softmax层输出,与此不同,所提出的自蒸馏框架提取网络......
  • Attribute GetCustomAttribute via method info of type
    [AttributeUsage(AttributeTargets.Method)]publicsealedclassTestAttribute:Attribute{publicintRepetitions;publicstringFailureMessage;publicTestAttribute():this(1){}publicTestAttribute(intrepetitions){......