winform 如何实现鼠标位置获取picturebox的焦点,然后焦点放大

winform 如何实现鼠标位置获取picturebox的焦点,然后焦点放大,第1张

通过鼠标滚轮的事件来实现。

事件中利用e XXX可以获取到鼠标的X,Y坐标

的放大不是你想的那样儿实现的,并不是以上的某个位置放大缩小。

而是以某个坐标为中心放大缩小。

所以你只要获取到鼠标的X,Y坐标就OK了。

至于放大缩小的API 百度下就有了吧。我之前是WPF做的。API函数不一样。

涉及多个知识点。 OnMouseMove中获取鼠标左键状态MK_LBUTTON、获取dc、记录第一个左键按下坐标 DC *** 作,Rectangle画矩形,注意设置SetROP2,每次画的时候要对上一个重画(即消除)鼠标左键抬起的时候,如果需要,要使用颜色填充或者画实线完成

import javaawt;

import javaxswingJFrame;

import javaxswingJLabel;

import javaxswingSwingConstants;

import javaxswingWindowConstants;

import javaxswingborder;

public class jframe {

/

@param args

/

public void CreateJFrame(String title) {

JFrame jf = new JFrame(title);

Container container = jfgetContentPane();

JLabel jl = new JLabel("");

jlsetHorizontalAlignment(SwingConstantsCENTER);

containeradd(jl);

containersetBackground(Colorwhite);

jfsetVisible(true);

jfsetSize(200, 150);

jfsetDefaultCloseOperation(WindowConstantsEXIT_ON_CLOSE);

};

1、新建一个 Window,添加一个Grid

<Window x:Class="WpfApplication1MainWindow"

        xmlns=";

2、添加类 FunnyBrush,这是我自己写着玩的

public class FunnyBrush

{

    public static void Draw(Panel panel)

    {

        var brush = new RadialGradientBrush();

        var center = new Point(panelActualWidth / 2d, panelActualHeight / 2d);

        brushCenter = center;

        brushGradientOrigin = center;

        brushRadiusX = centerX;

        brushRadiusY = centerY;

        brushMappingMode = BrushMappingModeAbsolute;

        ConsoleWriteLine(center);

        var stops = new GradientStopCollection();

        stopsAdd(new GradientStop(ColorsYellow, 0d));

        stopsAdd(new GradientStop(ColorsRed, 025d));

        stopsAdd(new GradientStop(ColorsBlue, 075d));

        stopsAdd(new GradientStop(ColorsLimeGreen, 1d));

        brushGradientStops = stops;

        panelBackground = brush;

        var win = FindParent<Window>(panel) as FrameworkElement;

        if (win == null) win = panel;

        winMouseMove += (obj, args) =>

        {

            brushGradientOrigin = argsGetPosition(panel);

        };

        winSizeChanged += (obj, args) =>

        {

            var pt = new Point(panelActualWidth / 2d, panelActualHeight / 2d);

            brushCenter = pt;

            brushRadiusX = ptX;

            brushRadiusY = ptY;

        };

    }

    // 这个方法来自

    // >}

3、在 Window_Loaded 事件中添加代码

FunnyBrushDraw(panel);

以上就是关于winform 如何实现鼠标位置获取picturebox的焦点,然后焦点放大全部的内容,包括:winform 如何实现鼠标位置获取picturebox的焦点,然后焦点放大、如何wpf 中 鼠标左击画矩形、wpf 如何获取canvas中的正方形的各个点的坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9339189.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存