山东网站制作定制,wordpress php 5.2.17,建筑企业查询系统官网,域名管理网站WPF开发者QQ群#xff1a; 340500857 前言如何进行颜色值拾取#xff1f;这里采用的是调用WindowsAPI进行实现。吸取 沙漠尽头的狼 的建议多写一些文字进行描述。效果图如下#xff1a;第一步 注册WindowsAPI 代码如下#xff1a;[DllImport(user32.dll)]stati… WPF开发者QQ群 340500857 前言 如何进行颜色值拾取这里采用的是调用WindowsAPI进行实现。吸取 沙漠尽头的狼 的建议多写一些文字进行描述。效果图如下第一步 注册WindowsAPI 代码如下 [DllImport(user32.dll)]static extern IntPtr GetDC(IntPtr hwnd);[DllImport(user32.dll)]static extern Int32 ReleaseDC(IntPtr hwnd, IntPtr hdc);[DllImport(gdi32.dll)]static extern uint GetPixel(IntPtr hdc, int nXPos, int nYPos);
第二步 定义颜色拾取方法GetPixelColor 和 鼠标GetCursorPos代码如下static public System.Windows.Media.Color GetPixelColor(int x, int y){IntPtr hdc GetDC(IntPtr.Zero);uint pixel GetPixel(hdc, x, y);ReleaseDC(IntPtr.Zero, hdc);Color color Color.FromRgb((byte)(pixel 0x000000FF),(byte)((pixel 0x0000FF00) 8),(byte)((pixel 0x00FF0000) 16));return color;}public class MyPoint{[StructLayout(LayoutKind.Sequential)]public struct POINT{public int X;public int Y;public POINT(int x, int y){this.X x;this.Y y;}}[DllImport(user32.dll, CharSet CharSet.Auto)]public static extern bool GetCursorPos(out POINT pt);}
第三步 创建计时器 DispatcherTimer 代码如下 private readonly DispatcherTimer_timer new DispatcherTimer();private const int MousePullInfoIntervalInMs 10;
第四步 构造函数 代码如下 _timer.Interval TimeSpan.FromMilliseconds(MousePullInfoIntervalInMs);_timer.Tick Timer_Tick;
第五步 Timer_Tick 代码如下private void Timer_Tick(object sender, EventArgs e){MyPoint.POINT point new MyPoint.POINT();var isMouseDown MyPoint.GetCursorPos(out point);var color GetPixelColor(point.X, point.Y);btnColor.Background new SolidColorBrush(color); //new System.Windows.Media.BrushConverter().ConvertFromString(color);Console.WriteLine(color);}
第六步 XAML 增加控件 代码如下StackPanelButton Content拾Color x:NamebtnColor ClickButton_Click/ButtonButton Content取消 ClickButton_Click_1/Button/StackPanel
第七步 实现Button 事件 代码如下 private void Button_Click(object sender, RoutedEventArgs e){if(!_timer.IsEnabled){_timer.Start();}}private void Button_Click_1(object sender, RoutedEventArgs e){if (_timer.IsEnabled){_timer.Stop();}}
WPF开发者QQ群 340500857 blogs https://www.cnblogs.com/yanjinhuaGithubhttps://github.com/yanjinhuagood作者驚鏵出处https://www.cnblogs.com/yanjinhua版权本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。转载请著名作者 出处 https://github.com/yanjinhuagood