池州哪里有做网站,广州网页设计哪家好,网站制作专业吗,优设网的特点WPF 如何实现简单放大镜控件名#xff1a;Magnifier作 者#xff1a;WPFDevelopersOrg - 驚鏵原文链接[1]#xff1a;https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用.NET40#xff1b;Visual Studio 2019;实现此功能需要用到 VisualBrush #xff0c;放大镜… WPF 如何实现简单放大镜控件名Magnifier作 者WPFDevelopersOrg - 驚鏵原文链接[1]https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用.NET40Visual Studio 2019;实现此功能需要用到 VisualBrush 放大镜展现使用 Canvas - Ellipse .可以使用 VisualBrush 创建放大效果。设置 Visual 获取或设置画笔的内容。设置 ViewboxUnits Absolute 坐标系与边界框无关。设置 Viewbox 获取或设置 TileBrush 图块中内容的位置和尺寸。当鼠标移动获取当前坐标点修改 VisualBrush 的 Viewbox。鼠标移动修改 Ellipse 的 Canvas.Left 与 Canvas.Top 跟随鼠标。1 xaml 代码如下GridImage Source0.png StretchFillNameimage MouseMoveimage_MouseMoveMouseEnterimage_MouseEnter MouseLeaveimage_MouseLeave/Canvas IsHitTestVisibleFalse NameMagnifierPanelEllipse StrokeLightBlue NameMagnifierCircle Height200 Width200Ellipse.FillVisualBrush x:NameMagnifierBrush Visual{Binding ElementNameimage} ViewboxUnitsAbsolute//Ellipse.Fill/Ellipse/Canvas/Grid2 xaml.cs 代码如下private void image_MouseMove(object sender, MouseEventArgs e){var center e.GetPosition(image);var length MagnifierCircle.ActualWidth * _factor;var radius length / 2;var viewboxRect new Rect(center.X - radius, center.Y - radius, length, length);MagnifierBrush.Viewbox viewboxRect;MagnifierCircle.SetValue(Canvas.LeftProperty, center.X - MagnifierCircle.ActualWidth / 2);MagnifierCircle.SetValue(Canvas.TopProperty, center.Y - MagnifierCircle.ActualHeight / 2);}private void image_MouseEnter(object sender, MouseEventArgs e){MagnifierCircle.Visibility Visibility.Visible;}private void image_MouseLeave(object sender, MouseEventArgs e){MagnifierCircle.Visibility Visibility.Hidden;}参考资料[1] 原文链接: https://github.com/WPFDevelopersOrg/WPFDevelopers