栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

windows拾取像素坐标

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

windows拾取像素坐标

展开全部

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

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

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

{

public static void Draw(Panel panel)

{

var brush = new RadialGradientBrush();

var center = new Point(panel.ActualWidth / 2d, panel.ActualHeight / 2d);

brush.Center = center;

brush.GradientOrigin = center;

brush.RadiusX = center.X;

brush.RadiusY = center.Y;

brush.MappingMode = BrushMappingMode.Absolute;

Console.WriteLine(center);

var stops = new GradientStopCollection();

stops.Add(new GradientStop(Colors.Yellow, 0d));

stops.Add(new GradientStop(Colors.Red, 0.25d));

stops.Add(new GradientStop(Colors.Blue, 0.75d));

stops.Add(new GradientStop(Colors.LimeGreen, 1d));

brush.GradientStops = stops;

panel.Background = brush;

var win = FindParent(panel) as FrameworkElement;

if (win == null) win = panel;

win.MouseMove += (obj, args) =>

{

brush.GradientOrigin = args.GetPosition(panel);

};

win.SizeChanged += (obj, args) =>

{

var pt = new Point(panel.ActualWidth / 2d, panel.ActualHeight / 2d);

brush.Center = pt;

brush.RadiusX = pt.X;

brush.RadiusY = pt.Y;

};

}

// 这个方法来自

// http://blog.csdn.net/fallincloud/article/details/6960255

public static T FindParent(DependencyObject d) where T : DependencyObject

{

DependencyObject parent = d;

while (parent != null)

{

parent = VisualTreeHelper.GetParent(parent);

if (parent != null && (parent is T))

{

return parent as T;

}

}

return parent as T;

}

}

3、在 Window_Loaded 事件中添加代码FunnyBrush.Draw(panel);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/923278.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号