网站关键词查询,网络销售有前途吗,做网站如何容易被百度抓取,seo是什么意思揉若湖南岚鸿专注WPF开发者QQ群#xff1a; 340500857 前言需要做一个用户选择头像并进行裁剪。欢迎转发、分享、点赞#xff0c;谢谢大家~。 效果预览#xff08;更多效果请下载源码体验#xff09;#xff1a;一、MainWindow.xaml代码如下#xff1a;GridBorder x:Name 340500857 前言 需要做一个用户选择头像并进行裁剪。欢迎转发、分享、点赞谢谢大家~。 效果预览更多效果请下载源码体验一、MainWindow.xaml代码如下GridBorder x:NamecontainerPanelCanvas x:NameDrawCanvasVerticalAlignmentCenter BackgroundTransparent Width{Binding ElementNamecontainerPanel,PathActualWidth}Height{Binding ElementNamecontainerPanel,PathActualHeight}Rectangle x:NamerectImage VerticalAlignmentCenter HorizontalAlignmentCenterWidth{Binding ElementNamecontainerPanel,PathActualWidth}Height{Binding ElementNamecontainerPanel,PathActualHeight}Rectangle.FillImageBrush ImageSource{Binding ImageSource,RelativeSource{ RelativeSource AncestorType{x:Type local:ImageCutCustoms}}}//Rectangle.Fill/RectangleRectangle VerticalAlignmentCenter HorizontalAlignmentCenterWidth{Binding ElementNamerectImage,PathActualWidth}Height{Binding ElementNamerectImage,PathActualHeight}Fill#99000000/Rectangle VerticalAlignmentCenter HorizontalAlignmentCenterWidth{Binding ElementNamecontainerPanel,PathActualWidth}Height{Binding ElementNamecontainerPanel,PathActualHeight}Rectangle.FillImageBrush ImageSource{Binding ImageSource,RelativeSource{ RelativeSource AncestorType{x:Type local:ImageCutCustoms}}}//Rectangle.FillRectangle.ClipRectangleGeometry x:NamerectRectangle Rect{Binding CutRect,RelativeSource{RelativeSource AncestorType{x:Type local:ImageCutCustoms}}}//Rectangle.Clip/Rectanglelocal:DragDropView x:NamedragDropItem Width{Binding ElementNamerectRectangle, Path Rect.Width}Height{Binding ElementNamerectRectangle, Path Rect.Height}Canvas.Left{Binding ElementNamerectRectangle, Path Rect.X}Canvas.Top{Binding ElementNamerectRectangle, Path Rect.Y}ParentMaxHeight{Binding ElementNameDrawCanvas,PathActualHeight}ParentMaxWidth{Binding ElementNameDrawCanvas,PathActualWidth}//Canvas/Border/Grid
二、ImageCutCustoms代码如下public partial class ImageCutCustoms : UserControl{public ImageSource ImageSource{get { return (ImageSource)GetValue(ImageSourceProperty); }set { SetValue(ImageSourceProperty, value); }}// Using a DependencyProperty as the backing store for ImageSource. This enables animation, styling, binding, etc...public static readonly DependencyProperty ImageSourceProperty DependencyProperty.Register(ImageSource, typeof(ImageSource), typeof(ImageCutCustoms), new PropertyMetadata(ImageSourcePropertyChangedCallback));public ImageSource SaveImageSource{get { return (ImageSource)GetValue(SaveImageSourceProperty); }set { SetValue(SaveImageSourceProperty, value); }}// Using a DependencyProperty as the backing store for SaveImageSource. This enables animation, styling, binding, etc...public static readonly DependencyProperty SaveImageSourceProperty DependencyProperty.Register(SaveImageSource, typeof(ImageSource), typeof(ImageCutCustoms), new PropertyMetadata());public Rect CutRect{get { return (Rect)GetValue(CutRectProperty); }set { SetValue(CutRectProperty, value); }}// Using a DependencyProperty as the backing store for CutRect. This enables animation, styling, binding, etc...public static readonly DependencyProperty CutRectProperty DependencyProperty.Register(CutRect, typeof(Rect), typeof(ImageCutCustoms), new PropertyMetadata());private Point startPoint, endPoint;public ImageCutCustoms(){InitializeComponent();this.dragDropItem.UpdateImageEvent DragDropItem_UpdateImageEvent;}private void DragDropItem_UpdateImageEvent(){var x Canvas.GetLeft(dragDropItem);var y Canvas.GetTop(dragDropItem);var w dragDropItem.Width;var h dragDropItem.Height;RenderTargetBitmap rtb new RenderTargetBitmap((int)rectImage.RenderSize.Width,(int)rectImage.RenderSize.Height, 96d, 96d, System.Windows.Media.PixelFormats.Default);rtb.Render(rectImage);var crop new CroppedBitmap(rtb, new Int32Rect((int)x, (int)y, (int)w, (int)h));SaveImageSource crop;startPoint new Point(x, y);endPoint new Point(xw, yh);CutRect new Rect(startPoint, endPoint);}private static void ImageSourcePropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e){var cutCustoms d as ImageCutCustoms;var x cutCustoms.ActualWidth / 3;var y cutCustoms.ActualHeight / 3;cutCustoms.startPoint new Point(x, y);cutCustoms.endPoint new Point(x 120, y 120);cutCustoms.CutRect new Rect(cutCustoms.startPoint,cutCustoms.endPoint);}}
源码地址githubhttps://github.com/yanjinhuagood/WPFDevelopers.gitgiteehttps://gitee.com/yanjinhua/WPFDevelopers.gitWPF开发者QQ群 340500857 blogs https://www.cnblogs.com/yanjinhuaGithubhttps://github.com/yanjinhuagood出处https://www.cnblogs.com/yanjinhua版权本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。转载请著名作者 出处 https://github.com/yanjinhuagood