当前位置: 首页 > news >正文

最新开公司的基本流程及费用百度seo网站优化 网络服务

最新开公司的基本流程及费用,百度seo网站优化 网络服务,wordpress 一键转微信,怎么建网站做推广最近项目需要&#xff0c;要用到一个图片查看器&#xff0c;类似于windows自带的图片查看器那样&#xff0c;鼠标滚动可以缩放&#xff0c;可以拖拽图片&#xff0c;于是就写了这个简单的图片查看器。 前台代码&#xff1a; <Window x:Class"PictureViewer.MainWindow&…

最近项目需要,要用到一个图片查看器,类似于windows自带的图片查看器那样,鼠标滚动可以缩放,可以拖拽图片,于是就写了这个简单的图片查看器。

前台代码:

<Window x:Class="PictureViewer.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"AllowDrop="True" Title="图片查看器" Height="350" Width="525" Loaded="Window_Loaded"SizeChanged="Window_SizeChanged" DragEnter="Window_DragEnter" Drop="Window_Drop"><Grid x:Name="mainGrid"><Grid.Resources><TransformGroup x:Key="TfGroup"><ScaleTransform ScaleX="1" ScaleY="1"/><TranslateTransform X="0" Y="0"/></TransformGroup></Grid.Resources><Grid.RowDefinitions><RowDefinition Height="50"></RowDefinition><RowDefinition Height="*"></RowDefinition></Grid.RowDefinitions><Button Grid.Row="0" Width="50" Height="30" Cursor="Hand" Background="Transparent" BorderThickness="0" Content="打开图片" Click="OpenImg_Click" x:Name="OpenImg" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/><Label Content="缩放倍数:" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="130,0,0,0"/><TextBox x:Name="txtMinSize" Width="40" Height="30" VerticalContentAlignment="Center" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="200,0,0,0" TextChanged="txtMinSize_TextChanged" Text="0.1"/><Label Content="--" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="240,0,0,0"/><TextBox x:Name="txtMaxSize" Width="40" Height="30" VerticalContentAlignment="Center" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="260,0,0,0" TextChanged="txtMaxSize_TextChanged" Text="3"/><ScrollViewer x:Name="mainScrollv" HorizontalAlignment="Center" VerticalAlignment="Center" HorizontalScrollBarVisibility="Disabled"VerticalScrollBarVisibility="Disabled" Cursor="SizeAll" Margin="0" Focusable="False" Grid.Row="1"><ContentControl MouseLeftButtonDown="ContentControl_MouseLeftButtonDown"MouseLeftButtonUp="ContentControl_MouseLeftButtonUp"MouseMove="ContentControl_MouseMove"MouseWheel="ContentControl_MouseWheel"HorizontalAlignment="Center" VerticalAlignment="Center"><Image x:Name="IMG" Margin="0" RenderTransform="{StaticResource TfGroup}" RenderOptions.BitmapScalingMode="NearestNeighbor"/></ContentControl></ScrollViewer></Grid>
</Window>

 

代码解析:

  通过一个定义一个TransformGroup,通过Key绑定到图片控件中,并且里面使用ScaleTransform实现缩放(scaleX是水平方向的缩放倍数,现默认为1倍,即无缩放,scaleY同理),TranslateTransform实现平移(鼠标拖动,X为水平方向的偏移量,Y为垂直方向的偏移量)。

  另通过一个ContentControl控件摆放图片控件,并为控件绑定各种事件(鼠标点下、抬起、拖动、滚动),图片控件的RenderOptions.BitmapscalingMode="NearestNeighbor"属性用于优化图片变换过程,防止出现图片移动或缩放模糊。

后台代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;namespace PictureViewer
{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}private bool mouseDown;private Point mouseXY;private double min = 0.1, max = 3.0;//最小/最大放大倍数private void Domousemove(ContentControl img, MouseEventArgs e){if (e.LeftButton != MouseButtonState.Pressed){return;}var group = IMG.FindResource("TfGroup") as TransformGroup;var transform = group.Children[1] as TranslateTransform;var position = e.GetPosition(img);transform.X -= mouseXY.X - position.X;transform.Y -= mouseXY.Y - position.Y;mouseXY = position;}private void DowheelZoom(TransformGroup group, Point point, double delta){var pointToContent = group.Inverse.Transform(point);var transform = group.Children[0] as ScaleTransform;if (transform.ScaleX + delta < min) return;if (transform.ScaleX + delta > max) return;transform.ScaleX += delta;transform.ScaleY += delta;var transform1 = group.Children[1] as TranslateTransform;transform1.X = -1 * ((pointToContent.X * transform.ScaleX) - point.X);transform1.Y = -1 * ((pointToContent.Y * transform.ScaleY) - point.Y);}private void ContentControl_MouseLeftButtonDown(object sender, MouseButtonEventArgs e){var img = sender as ContentControl;if (img == null){return;}img.CaptureMouse();mouseDown = true;mouseXY = e.GetPosition(img);}private void ContentControl_MouseLeftButtonUp(object sender, MouseButtonEventArgs e){var img = sender as ContentControl;if (img == null){return;}img.ReleaseMouseCapture();mouseDown = false;}private void ContentControl_MouseMove(object sender, MouseEventArgs e){var img = sender as ContentControl;if (img == null){return;}if (mouseDown){Domousemove(img, e);}}private void ContentControl_MouseWheel(object sender, MouseWheelEventArgs e){var img = sender as ContentControl;if (img == null){return;}var point = e.GetPosition(img);var group = IMG.FindResource("TfGroup") as TransformGroup;var delta = e.Delta * 0.001;DowheelZoom(group, point, delta);}private void OpenImg_Click(object sender, RoutedEventArgs e){// 在WPF中, OpenFileDialog位于Microsoft.Win32名称空间            Microsoft.Win32.OpenFileDialog dialog = new Microsoft.Win32.OpenFileDialog();dialog.Filter = "Files (*.png)|*.png|Files(*.jpg)|*.jpg";if (dialog.ShowDialog() == true){//MessageBox.Show(dialog.FileName);this.IMG.Source = new BitmapImage(new Uri(dialog.FileName));}}private void Window_Loaded(object sender, RoutedEventArgs e){setViewSize();}private void setViewSize(){mainScrollv.Width = this.ActualWidth;mainScrollv.Height = this.ActualHeight - 50;}private void Window_SizeChanged(object sender, SizeChangedEventArgs e){setViewSize();}private void txtMinSize_TextChanged(object sender, TextChangedEventArgs e){this.min = double.Parse(txtMinSize.Text);}private void txtMaxSize_TextChanged(object sender, TextChangedEventArgs e){this.max = double.Parse(txtMaxSize.Text);}private void Window_DragEnter(object sender, DragEventArgs e){if (e.Data.GetDataPresent(DataFormats.FileDrop))e.Effects = DragDropEffects.Link;//WinForm中为e.Effect = DragDropEffects.Linkelse e.Effects = DragDropEffects.None;//WinFrom中为e.Effect = DragDropEffects.None
}private void Window_Drop(object sender, DragEventArgs e){string filename = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();this.IMG.Source = new BitmapImage(new Uri(filename));}}
}

 

可将图片拖拽到窗口打开,Window_DragEnter里验证拖拽进来的文件是否可用,Window_Drop处理拖拽进来之后的事情

 

源码:http://files.cnblogs.com/files/huangli321456/PictureViewer.zip

 

代码参照:http://www.cnblogs.com/snake-hand/archive/2012/08/13/2636227.html

转载于:https://www.cnblogs.com/huangli321456/p/5113554.html

http://www.lbrq.cn/news/2348605.html

相关文章:

  • 烟台学校网站建设企业培训课程设计
  • asp双语网站后台怎么用广州外包网络推广公司
  • 做贸易把产品放到哪个网站好呢成都计算机培训机构排名前十
  • 太仓智能网站开发查询收录
  • 南京一站式工程装饰装修网站每日财经最新消息
  • wordpress框架文件赣州seo排名
  • 做网站时 404网页如何指向国家新闻最新消息今天
  • 品牌营销型网站作用腾讯云服务器
  • 网站界面设计起着决定性作用电脑学校培训
  • 奥特蛋的做网站友链购买有效果吗
  • 长春网站建设 信赖吉网传媒搜索引擎优化技巧
  • vps wordpress 卸载汉中网站seo
  • 网站建设制作方案杭州线上推广
  • wordpress网站上传到服务器品牌运营策略
  • 陕西省住房和城市建设厅网站公众号如何推广引流
  • wordpress读取字体seo高效优化
  • 群晖 wordpress 编辑宁波seo推广服务电话
  • 上饶哪有做网站的公司佛山做网站建设
  • 网站日志分析的意义谷歌账号注册入口官网
  • 电影资源分享网站怎么做的网站权重是怎么提升的
  • 牡丹江市建设局网站中国职业培训在线官网
  • 酷家乐个人网页版网站搜索引擎优化
  • 深圳网站建设易通鼎商品推广
  • 网站建设招标流程图免费刷推广链接的软件
  • 做免费嗳暧视频网站软文发布的平台与板块
  • wordpress文章添加按钮霸榜seo
  • 最火的做牛排沙拉网站seo虚拟外链
  • 最强的网站建设电话seo公司资源
  • 吉安市网站制作关键词推广排名
  • 用python做网站的多吗单页关键词优化费用
  • APP端定位实现(uniapp Vue3)(腾讯地图)
  • 一种用于医学图像分割的使用了多尺寸注意力Transformer的混合模型: HyTransMA
  • VMware 虚拟机装 Linux Centos 7.9 保姆级教程(附资源包)
  • C++类模版与友元
  • 系规备考论文:论IT服务部署实施方法
  • 在 Microsoft Edge 中,你可以使用 IE 兼容模式(Internet Explorer Mode)来运行 IE 内核 的网站。