<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      原創企業級控件庫之圖片瀏覽控件

      原創企業級控件庫之圖片瀏覽控件

      發布日期:2010年12月18日星期六作者:EricHu

       

        在上兩篇:我介紹了原創企業級控件庫之組合查詢控件 原創企業級控件庫之大數據量分頁控件,受到了很多朋友的支持,給了我很大的動力,在此我特表感謝。有的朋友要求把源碼提供上來,我在第一篇就講了,源碼會在我這個系列講完之后提供,大家先別著急,如果你確實需要,可以時常關注此系列,謝謝大家。其實,在系列文章中,我已把核心代碼貢獻出來了。學習有時是參考別人與實踐別人的勞動成果的過程,你光把別人的代碼拿過來用用,不研究其實質,進步很慢。

      這篇我將給大家介紹:企業級控件庫之圖片瀏覽控件。

        摘要

        我想大家用過或聽說過ACDSee 對于圖片瀏覽的強大功能,我接下來介紹的控件與ACDSee相比,可謂是天壤之別,雖沒有其強大的功能,但用在一些常用的軟件上,提供一些常用的基本功能還是可以的。同時,我只提供一個模子,代碼開源,你可以隨便修改以滿足自己的需要。

        成就別人、等于成就自己。我沒什么要求,歡迎大家多多支持與評論,覺得不錯的,記得點擊文章左下角的”關注博客”,就這么簡單。同時,你要用什么好的想法,也可以與我交流,謝謝。

        圖片瀏覽控件運行效果如下圖:

        

        本控件類圖:

        本控件類詳細信息:

        本控件核心代碼: 

      #region 滾動鼠標滾輪實現鼠標縮放
      /************************************************************
               * 滾動鼠標滾輪實現鼠標縮放
               ************************************************************/
      privatevoid picView_MouseWheel(object sender, MouseEventArgs e)
              {
      switch (keyAction)
                  {
      case1:
      if (e.Delta >0&& picView.Width <10000)
                          {
                              zoom(e.Location, 1100);
                          }
      elseif (e.Delta <0&& picView.Image.Width / picView.Width <5)
                          {
                              zoom(e.Location, 900);
                          }
                          CenterImage();//使圖片居中顯示
       break;
      case2:
      if (hScrollBarImageView.Visible)
                              hScrollBarImageView.Value = (hScrollBarImageView.Value - e.Delta <0?0 : (hScrollBarImageView.Value - e.Delta > hScrollBarImageView.Maximum ? hScrollBarImageView.Maximum : hScrollBarImageView.Value - e.Delta));
      break;
      default:
      if (vScrollBarImageView.Visible)
                              vScrollBarImageView.Value = (vScrollBarImageView.Value - e.Delta <0?0 : (vScrollBarImageView.Value - e.Delta > vScrollBarImageView.Maximum ? vScrollBarImageView.Maximum : vScrollBarImageView.Value - e.Delta));
      break;
                  }
              }
      #endregion  

        下面給出整個控件的完整代碼及窗體調用方法:

        一、控件完整代碼:

      #region  版權信息
      /*---------------------------------------------------------------------*
      // Copyright (C) 2010 http://www.rzrgm.cn/huyong
      // 版權所有。 
      // 項目  名稱:《Winform通用控件庫》
      // 文  件  名: UcImageView.cs
      // 類  全  名: DotNet.Controls.UcImageView 
      // 描      述:  圖像顯示控件
      // 創建  時間: 2010-08-05
      // 創建人信息: [**** 姓名:胡勇 QQ:406590790 E-Mail:406590790@qq.com *****]
      *----------------------------------------------------------------------*/
      #endregion
      
      using System;
      using System.ComponentModel;
      using System.Drawing;
      using System.Windows.Forms;
      using System.Drawing.Printing;
      using DotNet.Common;
      
      namespace DotNet.Controls
      {
      ///<summary>
      /// 圖像顯示控件
      /// UcImageView
      /// 
      /// 修改紀錄
      ///     2010-11-6  胡勇 優化相關代碼。
      ///     2010-8-5   胡勇 創建圖像顯示控件
      ///     
      ///<author>
      ///<name>胡勇</name>
      ///<QQ>80368704</QQ>
      ///<Email>80368704@qq.com</Email>
      ///</author>
      ///</summary>
      publicpartialclass UcImageView : UserControl
          {
      #region 構造函數
      public UcImageView()
              {
                  InitializeComponent();
      //記錄PnlMain的size
                  panelOldSize.X = PnlMain.Width;
                  panelOldSize.Y = PnlMain.Height;
              }
      #endregion
      
      #region 公共變量
      private Point StartP =new Point(0, 0);
      privatebool isMouseDown =false;
      private Point panelOldSize =new Point(0, 0);
      privateint imgIndexBy1000 =0;
      privateint keyAction =0;
      privateint w, h;
      #endregion
      
      #region 公共事件
      
              [Category("圖片瀏覽"), Description("移動或漫游圖片的Checked事件Changed時發生。"), Browsable(true)]
      publicevent EventHandler OnMnuMoveImageCheckedChanged;
      
      #endregion
      
      #region 公共方法
      
      #region 增加圖片到PictureBox:void AddImage(string fileName, bool isAsync)
      ///<summary>
      /// 增加要顯示的圖片
      ///</summary>
      ///<param name="fileName">圖片路徑全名</param>
      ///<param name="isAsync">true:異步方式加載圖片</param>
      publicvoid AddImage(string fileName, bool isAsync)
              {
      if (isAsync)//異步加載圖片
                  {
      //圖片異步加載完成后的處理事件
                      picView.LoadCompleted +=new AsyncCompletedEventHandler(picView_LoadCompleted);
      //圖片加裁時,顯示等待光標
                      picView.UseWaitCursor =true;
      //采用異步加裁方式
                      picView.WaitOnLoad =false;
      //開始異步加裁圖片
                      picView.LoadAsync(fileName);
                  }
      else
                  {
                      picView.Image = Image.FromFile(fileName);//載入圖片
                  }
      
                  InitialImage();
                 
              }
      
      ///<summary>
      /// 增加要顯示的圖片
      ///</summary>
      ///<param name="img">Image</param>
      publicvoid AddImage(Image img)
              {
      if (img !=null)
                  {
                      picView.Image = img;
                      InitialImage();
                  }
      else
                  {
                      picView =null;
                  }
              }
      #endregion
      
      #region 得到ImageView中的圖片:Image GetImageInImageView()
      ///<summary>
      /// 得到ImageView中的圖片
      ///</summary>
      ///<returns>Image</returns>
      public Image GetImageInImageView()
              {
      if (picView.Image !=null)
                  {
      return picView.Image;
                  }
      else
                  {
      returnnull;
                  }
              }
      #endregion
      
      #region 放大、縮小、適應圖片大小、移動圖片、左旋轉圖片與右旋轉圖片
      ///<summary>
      /// 放大圖片
      ///</summary>
      publicvoid ZoomInImage()
              {
      if (picView.Image !=null)
                  {
      if (picView.Width <5000)
                      {
                          zoom(picView.Location, 1100);
                          CenterImage();
                      }
      else
                      {
                          MessageBox.Show("對不起,不能再進行放大!","提示信息",MessageBoxButtons.OK,MessageBoxIcon.Information);
                      }
                  }
              }
              
      ///<summary>
      /// 縮小圖片
      ///</summary>
      publicvoid ZoomOutImage()
              {
      if (picView.Image !=null)
                  {
      if (picView.Image.Width / picView.Width <5&&-7<0)
                      {
                          zoom(picView.Location, 900);
                          CenterImage();
                      }
      else
                      {
                          MessageBox.Show("對不起,不能再進行縮小!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                      }
                  }
              }
      
      ///<summary>
      /// 適應圖片大小
      ///</summary>
      publicvoid FitImageSize()
              {
      if (picView.Image !=null)
                  {
      float r1 = (float)this.w /this.picView.Width;
      float r2 = (float)this.h /this.picView.Height;
      this.picView.Scale(r1, r2);
      this.picView.Left = (this.PnlMain.Width -this.picView.Width) /2;
      this.picView.Top = (this.PnlMain.Height -this.picView.Height) /2;
      this.picView.Cursor = Cursors.Default;
                      CenterImage();
                  }
              }
      
      ///<summary>
      /// 移動圖片
      ///</summary>
      publicvoid MoveImage()
              {
                  mnuMy.Checked = MnuMoveImageChecked;
              }
      
      ///<summary>
      /// 左旋轉圖片
      ///</summary>
      publicvoid LeftRotateImage()
              {
      if (picView.Image !=null)
                  {
                      picView.Image.RotateFlip(RotateFlipType.Rotate90FlipX);
                      picView.Refresh();
                      CenterImage();
                  }
              }
      
      ///<summary>
      /// 右旋轉圖片
      ///</summary>
      publicvoid RightRotateImage()
              {
      if (picView.Image !=null)
                  {
                      picView.Image.RotateFlip(RotateFlipType.Rotate90FlipY);
                      picView.Refresh();
                      CenterImage();
                  }
              }
      #endregion
      
      #endregion
      
      #region 公共屬性
      privatebool _mnuMoveImageChecked;
      ///<summary>
      /// 確定漫游菜單項是否處于選中狀態(用于是否可以移動或漫游圖片)
      ///</summary>
              [Category("圖片瀏覽"), Description("確定漫游菜單項是否處于選中狀態(用于是否可以移動或漫游圖片)"),Browsable(false)]
      publicbool MnuMoveImageChecked
              {
      get
                  {
      return _mnuMoveImageChecked;
                  }
      set
                  {
                      _mnuMoveImageChecked = value;
      this.mnuMy.Checked = _mnuMoveImageChecked;
                  }
              }
      
      privatebool _mnuPrintVisible =true; //默認可見
      ///<summary>
      /// 確定打印菜單項是可見還是隱藏
      ///</summary>
              [Category("圖片瀏覽"), Description("確定打印菜單項是可見還是隱藏"), Browsable(true)]
      publicbool MnuPrintVisible
              {
      get
                  {
      return _mnuPrintVisible;
                  }
      set
                  {
                      _mnuPrintVisible = value;
      this.mnuPrint.Visible = _mnuPrintVisible;
                  }
              }
      #endregion
      
      #region 私有方法
      
      privatevoid picView_LoadCompleted(object sender, AsyncCompletedEventArgs e)
              {
      //圖片加載完成后,將光標恢復
                  picView.UseWaitCursor =false;
              }
      
      #region 圖片縮放
      ///<summary>
      /// 圖片縮放
      ///</summary>
      ///<param name="center">縮放中心點</param>
      ///<param name="zoomIndexBy1000">縮放倍率的1000倍</param>
      privatevoid zoom(Point center, int zoomIndexBy1000)
              {
      //記錄原始的picView的Size
                  Point oldSize =new Point(picView.Width, picView.Height);
      //實施放大(以x方向為基準計算得出y方向大小,防止多次運算誤差積累使Image和picView的尺寸不匹配)
                  picView.Width = picView.Width * zoomIndexBy1000 /1000;
                  picView.Height = picView.Width * imgIndexBy1000 /1000;
      //重新定位標定后的picView位置
                  picView.Left -= ((picView.Width - oldSize.X) * (center.X *1000/ oldSize.X)) /1000;
                  picView.Top -= ((picView.Height - oldSize.Y) * (center.Y *1000/ oldSize.Y)) /1000;
      //重新設定橫向滾動條最大值和位置
      if (picView.Width - PnlMain.Width >0)
                  {
                      hScrollBarImageView.Visible =true;
                      hScrollBarImageView.Maximum = picView.Width - PnlMain.Width + vScrollBarImageView.Width +2;
                      hScrollBarImageView.Value = (picView.Left >=0?0 : (-picView.Left > hScrollBarImageView.Maximum ? hScrollBarImageView.Maximum : -picView.Left));
                  }
      else
                  {
                      hScrollBarImageView.Visible =false;
                  }
      //重新設定縱向滾動條最大值和位置
      if (picView.Height - PnlMain.Height >0)
                  {
                      vScrollBarImageView.Visible =true;
                      vScrollBarImageView.Maximum = picView.Height - PnlMain.Height + hScrollBarImageView.Width +2;
                      vScrollBarImageView.Value = (picView.Top >=0?0 : (-picView.Top > vScrollBarImageView.Maximum ? vScrollBarImageView.Maximum : -picView.Top));
                  }
      else
                  {
                      vScrollBarImageView.Visible =false;
                  }
              }
      #endregion
      
      #region 圖片加裁到PictureBox中后,對其進行初始化操作
      ///<summary>
      /// 圖片加裁到PictureBox中后,對其進行初始化操作
      ///</summary>
      privatevoid InitialImage()
              {
                  ImageChange();//得到最適合顯示的圖片尺寸
      this.w =this.picView.Width;
      this.h =this.picView.Height;
      
      //設定圖片位置
                  picView.Location =new Point(0, 0);
      //設定圖片初始尺寸
                  picView.Size = picView.Image.Size;
      //設定圖片縱橫比
                  imgIndexBy1000 = (picView.Image.Height *1000) / picView.Image.Width;
      //設定滾動條
      if (picView.Width - PnlMain.Width >0)
                  {
                      hScrollBarImageView.Maximum = picView.Width - PnlMain.Width + vScrollBarImageView.Width +2;//+ hScrollBarImageView.LargeChange
                      hScrollBarImageView.Visible =true;
                  }
      if (picView.Height - PnlMain.Height >0)
                  {
                      vScrollBarImageView.Maximum = picView.Height - PnlMain.Height + hScrollBarImageView.Height +2;//+ vScrollBarImageView.LargeChange
                      vScrollBarImageView.Visible =true;
                  }
                  CenterImage();
              }
      #endregion
      
      #region 居中與全屏顯示圖片
      
      ///<summary>
      /// 使圖片全屏顯示
      ///</summary>
      privatevoid FullImage()
              {
      if (picView.Image.Width < picView.Width && picView.Image.Height < picView.Height)
                  {
                      picView.SizeMode = PictureBoxSizeMode.CenterImage;
                  }
                  CalculateAspectRatioAndSetDimensions();
              }
      
      
      ///<summary>
      /// 保持圖片居中顯示
      ///</summary>
      privatevoid CenterImage()
              {
                  picView.Left = PnlMain.Width /2- picView.Width /2;
                  picView.Top = PnlMain.Height /2- picView.Height /2;
              }
      
      #endregion
      
      #region CalculateAspectRatioAndSetDimensions
      ///<summary>
      /// CalculateAspectRatioAndSetDimensions
      ///</summary>
      ///<returns>double</returns>
      privatedouble CalculateAspectRatioAndSetDimensions()
              {
      double ratio;
      if (picView.Image.Width > picView.Image.Height)
                  {
                      ratio = picView.Image.Width / picView.Image.Height;
                      picView.Height = Convert.ToInt16(double.Parse(picView.Width.ToString()) / ratio);
                  }
      else
                  {
                      ratio = picView.Image.Height / picView.Image.Width;
                      picView.Width = Convert.ToInt16(double.Parse(picView.Height.ToString()) / ratio);
                  }
      return ratio;
              }
      #endregion
      
      #region 用于適應圖片大小
      ///<summary>
      /// 用于適應圖片大小
      ///</summary>
      privatevoid ImageChange()
              {
      this.picView.Height =this.picView.Image.Height;
      this.picView.Width =this.picView.Image.Width;
      float cx =1;
      if (this.picView.Image.Height >this.PnlMain.Height) cx =
                      (float)(this.PnlMain.Height -10) / (float)this.picView.Image.Height;
      
      this.picView.Scale(cx);
      this.picView.Left = (this.PnlMain.Width -this.picView.Width) /2;
      this.picView.Top = (this.PnlMain.Height -this.picView.Height) /2;
              }
      #endregion
      
      #endregion
      
      #region 窗口(PnlMain)尺寸改變時圖像的顯示位置控制
      /************************************************************
               * 窗口(PnlMain)尺寸改變時圖像的顯示位置控制
               ************************************************************/
      privatevoid PnlMain_Resize(object sender, EventArgs e)
              {
      //對左右的方向操作(左右)
      if (picView.Width <= PnlMain.Width) //圖片左右居中
                  {
                      picView.Left = (PnlMain.Width - picView.Width) /2;
                      hScrollBarImageView.Visible =false;
                  }
      elseif (picView.Left <0&& picView.Width + picView.Left < PnlMain.Width)//圖片靠右
                  {
                      picView.Left = PnlMain.Width - picView.Width;
                      hScrollBarImageView.Visible =true;
                  }
      elseif (picView.Left >0&& picView.Width + picView.Left > PnlMain.Width)//圖片靠左
                  {
                      picView.Left =0;
                      hScrollBarImageView.Visible =true;
                  }
      else//保證顯示的中心圖樣不變(左右)
                  {
                      picView.Left += (PnlMain.Width - panelOldSize.X) /2;
                      hScrollBarImageView.Visible =true;
                  }
      //設定橫向滾動條最大值
                  hScrollBarImageView.Maximum = (picView.Width - PnlMain.Width >0? picView.Width - PnlMain.Width + hScrollBarImageView.Maximum +2 : 0);
      //設定橫向滾動條Value
                  hScrollBarImageView.Value = (picView.Left >=0?0 : -picView.Left);
      //重置舊的pannel1的Width
                  panelOldSize.X = PnlMain.Width;
      
      //對上下的方向操作(上下)
      if (picView.Height <= PnlMain.Height)//圖片上下居中
                  {
                      picView.Top = (PnlMain.Height - picView.Height) /2;
                      vScrollBarImageView.Visible =false;
                  }
      elseif (picView.Top <0&& picView.Height + picView.Top < PnlMain.Height)//圖片靠下
                  {
                      picView.Top = PnlMain.Height - picView.Height;
                      vScrollBarImageView.Visible =true;
                  }
      elseif (picView.Top >0&& picView.Height + picView.Top > PnlMain.Height)//圖片靠上
                  {
                      picView.Top =0;
                      vScrollBarImageView.Visible =true;
                  }
      else//保證顯示的中心圖樣不變(上下)
                  {
                      picView.Top += (PnlMain.Height - panelOldSize.Y) /2;
                      vScrollBarImageView.Visible =true;
                  }
      //設定縱向滾動條最大值
                  vScrollBarImageView.Maximum = (picView.Height - PnlMain.Height >0? picView.Height - PnlMain.Height + vScrollBarImageView.Maximum +2 : 0);
      //設定縱向滾動條Value
                  vScrollBarImageView.Value = (picView.Top >=0?0 : -picView.Top);
      //重置舊的pannel1的Height
                  panelOldSize.Y = PnlMain.Height;
              }
      #endregion
      
      #region 滾動條滾動時,圖片移動
      /************************************************************
               * 滾動條滾動時,圖片移動
               ************************************************************/
      privatevoid vScrollBarImageView_ValueChanged(object sender, EventArgs e)
              {
                  picView.Top =-vScrollBarImageView.Value;
              }
      
      privatevoid hScrollBarImageView_ValueChanged(object sender, EventArgs e)
              {
                  picView.Left =-hScrollBarImageView.Value;
              }
      #endregion
      
      #region PictureBox 鼠標按下、鼠標進入、松開與移動事件
      privatevoid picView_MouseDown(object sender, MouseEventArgs e)
              {
                  StartP = e.Location;
                  isMouseDown =true;
              }
      
      privatevoid picView_MouseEnter(object sender, EventArgs e)
              {
                  picView.Focus();
              }
      
      privatevoid picView_MouseMove(object sender, MouseEventArgs e)
              {
      if (mnuMy.Checked && isMouseDown)
                  {
      this.picView.Cursor = Cursors.SizeAll;
      //計算出移動后兩個滾動條應該的Value
      int x =-picView.Left + StartP.X - e.X;
      int y =-picView.Top + StartP.Y - e.Y;
      
      //如果滾動條的value有效則執行操作;
      if (x >=-PnlMain.Width +10&& x <= picView.Width -10)
                      {
      if (hScrollBarImageView.Visible)
                          {
      if (x >0)
                                  hScrollBarImageView.Value = x > hScrollBarImageView.Maximum ? hScrollBarImageView.Maximum : x;
                              picView.Left =-x - (vScrollBarImageView.Visible && x <0? vScrollBarImageView.Width : 0);
                          }
      else
                              picView.Left =-x;
                      }
                      
      if (y >=-PnlMain.Height +10&& y <= picView.Height -10)
                      {
      if (vScrollBarImageView.Visible)
                          {
      if (y >0)
                                  vScrollBarImageView.Value = y > vScrollBarImageView.Maximum ? vScrollBarImageView.Maximum : y;
                              picView.Top =-y - (hScrollBarImageView.Visible && y <0? hScrollBarImageView.Height : 0);
                          }
      else
                              picView.Top =-y;
                      }
      
      
      /*****************************************************
                       * 給予調整滾動條調整圖片位置
                       *****************************************************
                      計算出移動后兩個滾動條應該的Value*/
      /*int w = hScrollBarImageView.Value + StartP.X -e.X;
                      int z = vScrollBarImageView.Value + StartP.Y -e.Y;
                      如果滾動條的value有效則執行操作;
                      否則將滾動條按不同情況拉到兩頭
                      if (w >= 0 && w <= hScrollBarImageView.Maximum)
                      {
                          hScrollBarImageView.Value = w;
                      }
                      else
                      {
                          hScrollBarImageView.Value = (w < 0 ? 0 : hScrollBarImageView.Maximum);
                      }
                      if (z >= 0 && z <= vScrollBarImageView.Maximum)
                      {
                          vScrollBarImageView.Value = z;
                      }
                      else
                      {
                          vScrollBarImageView.Value = (z < 0 ? 0 : vScrollBarImageView.Maximum);
                      }*/
                  }
      else
                  {
      this.picView.Cursor = Cursors.Default;
                  }
              }
      
      privatevoid picView_MouseUp(object sender, MouseEventArgs e)
              {
                  isMouseDown =false;
              }
      #endregion
      
      #region 滾動鼠標滾輪實現鼠標縮放
      /************************************************************
               * 滾動鼠標滾輪實現鼠標縮放
               ************************************************************/
      privatevoid picView_MouseWheel(object sender, MouseEventArgs e)
              {
      switch (keyAction)
                  {
      case1:
      if (e.Delta >0&& picView.Width <10000)
                          {
                              zoom(e.Location, 1100);
                          }
      elseif (e.Delta <0&& picView.Image.Width / picView.Width <5)
                          {
                              zoom(e.Location, 900);
                          }
                          CenterImage();//使圖片居中顯示
      break;
      case2:
      if (hScrollBarImageView.Visible)
                              hScrollBarImageView.Value = (hScrollBarImageView.Value - e.Delta <0?0 : (hScrollBarImageView.Value - e.Delta > hScrollBarImageView.Maximum ? hScrollBarImageView.Maximum : hScrollBarImageView.Value - e.Delta));
      break;
      default:
      if (vScrollBarImageView.Visible)
                              vScrollBarImageView.Value = (vScrollBarImageView.Value - e.Delta <0?0 : (vScrollBarImageView.Value - e.Delta > vScrollBarImageView.Maximum ? vScrollBarImageView.Maximum : vScrollBarImageView.Value - e.Delta));
      break;
                  }
              }
      #endregion
      
      #region 窗體按鍵事件處理
      
      privatevoid UcImageView_KeyDown(object sender, KeyEventArgs e)
              {
      if (e.Control)
                      keyAction =1;
      elseif (e.Shift)
                      keyAction =2;
              }
      
      privatevoid UcImageView_KeyUp(object sender, KeyEventArgs e)
              {
                  keyAction =0;
              } 
      
      privatevoid picView_KeyDown(object sender, KeyEventArgs e)
              {
      if (e.Control)
                      keyAction =1;
      elseif (e.Shift)
                      keyAction =2;
      else
                      keyAction =3;
              }
      privatevoid picView_KeyUp(object sender, KeyEventArgs e)
              {
                  keyAction =0;
              }
      #endregion
      
      #region 快捷菜單事件代碼
      //放大圖片
      privatevoid mnuZoomIn_Click(object sender, EventArgs e)
              {
      this.ZoomInImage();
              }
      
      //縮小圖片
      privatevoid mnuZoomOut_Click(object sender, EventArgs e)
              {
      this.ZoomOutImage();
              }
      
      //適應圖片大小
      privatevoid mnuFitSize_Click(object sender, EventArgs e)
              {
      this.FitImageSize();
              }
      
      //漫游圖片
      privatevoid mnuMy_Click(object sender, EventArgs e)
              {
                  MnuMoveImageChecked =!mnuMy.Checked;
      this.MoveImage();
              }
      
      //左旋轉圖片
      privatevoid mnuLeftRotate_Click(object sender, EventArgs e)
              {
      this.LeftRotateImage();
              }
      
      //右旋轉圖片
      privatevoid mnuRightRotate_Click(object sender, EventArgs e)
              {
      this.RightRotateImage();
              }
      
      #region 打印圖片
      //打印圖片
      privatevoid mnuPrint_Click(object sender, EventArgs e)
              {
      if (picView.Image !=null)
                  {
                      PrintDialog printDgImageView =new PrintDialog();
      
      /*設置紙張類型
                      PaperSize pg = new PaperSize("A3",297,420);
                      printDocImageView.DefaultPageSettings.PaperSize = pg;*/
                      PaperSize pg =new PaperSize("A3", 23, 33);
                      printDgImageView.Document = printDocImageView;
      if (printDgImageView.ShowDialog() == DialogResult.OK)
                      {
      try
                          {
                              printDocImageView.Print();
                          }
      catch
                          {
      //停止打印
                              printDocImageView.PrintController.OnEndPrint(printDocImageView, new System.Drawing.Printing.PrintEventArgs());
                          }
                      }
                  }
      else
                  {
                      DialogHelper.ShowWarningMsg("對不起,沒有要打印的數據!");
                  }
              }
      
      privatevoid printDocImageView_PrintPage(object sender, PrintPageEventArgs e)
              {
      this.FitImageSize();//實際尺寸
      if (picView.Image !=null)
                  {
                      e.Graphics.DrawImage(picView.Image, picView.Location.X, picView.Location.Y, picView.Width, picView.Height);
                  }
              }
      #endregion
      
      #endregion
      
      #region 窗體事件
      privatevoid mnuMy_CheckedChanged(object sender, EventArgs e)
              {
      if (OnMnuMoveImageCheckedChanged !=null)
                  {
                      MnuMoveImageChecked =this.mnuMy.Checked;
                      OnMnuMoveImageCheckedChanged(sender, EventArgs.Empty);
                  }
              }
      #endregion
          }
      }  

        二、WinForm窗體調用方法完整代碼: 

      using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Data;
      using System.Drawing;
      using System.Text;
      using System.Windows.Forms;
      using DotNet.Common;
      
      namespace DotNet.WinForm.Example
      {
      publicpartialclass FrmUcImageView : Form
          {
      public FrmUcImageView()
              {
                  InitializeComponent();
              }
      
      
      privatevoid FrmUcImageView_Shown(object sender, EventArgs e)
              {
      try
                  {
                      ucImageViewTest.AddImage(Image.FromFile(Application.StartupPath +"\\windows7.jpg"));
                  }
      catch(Exception ex)
                  {
                      DialogHelper.ShowErrorMsg(ex.Message);
                  }
              }
      
      privatevoid btnAdd_Click(object sender, EventArgs e)
              {
                  openImgDlg.Filter ="Image Files(*.jpg;*.jpeg;*.tiff;*.gif)|*.jpg;*.gpeg;*.tiff;*.gif|All files (*.*)|*.*";//圖片文件的類型
      if (openImgDlg.ShowDialog() == DialogResult.OK)
                  {
      string FileName, pathName;
                      pathName = openImgDlg.FileName;
                      FileName = FileHelper.GetName(pathName);
                      ucImageViewTest.AddImage(Image.FromFile(pathName));
                  }
              }
      
      privatevoid btnZoomIn_Click(object sender, EventArgs e)
              {
                  ucImageViewTest.ZoomInImage();
              }
      
      privatevoid btnZoomOut_Click(object sender, EventArgs e)
              {
                  ucImageViewTest.ZoomOutImage();
              }
      
      privatevoid btnMy_Click(object sender, EventArgs e)
              {
                  btnMy.Checked = ucImageViewTest.MnuMoveImageChecked =!btnMy.Checked;
                  ucImageViewTest.MoveImage();
              }
      
      privatevoid btnFitSize_Click(object sender, EventArgs e)
              {
                  ucImageViewTest.FitImageSize();
              }
      
      privatevoid btnLeftRotate_Click(object sender, EventArgs e)
              {
                  ucImageViewTest.LeftRotateImage();
              }
      
      privatevoid btnRightRotate_Click(object sender, EventArgs e)
              {
                  ucImageViewTest.RightRotateImage();
              }
      
      privatevoid ucImageViewTest_OnMnuMoveImageCheckedChanged(object sender, EventArgs e)
              {
      //使ucImageViewDj中的快捷菜單中的漫游的選中狀態與當前窗口漫游按鈕的選中狀態保持一至
                  btnMy.Checked = ucImageViewTest.MnuMoveImageChecked;
              }
      
      privatevoid btnExit_Click(object sender, EventArgs e)
              {
      this.Close();
              }
      
          }
      }  

       

      posted @ 2011-01-05 21:56  .NET快速開發框架  閱讀(7081)  評論(22)    收藏  舉報
      主站蜘蛛池模板: 亚洲欧美卡通另类丝袜美腿| 久久久久久久久久久久中文字幕 | 亚洲一区二区三区丝袜| 国产欧美另类久久久精品不卡| 中文字幕一区日韩精品| 暖暖 免费 高清 日本 在线观看5 色老头亚洲成人免费影院 | 无码人妻av免费一区二区三区| 亚洲自拍偷拍中文字幕色| 公喝错春药让我高潮| 国产成人人综合亚洲欧美丁香花| 婷婷丁香五月激情综合| 亚洲中文字幕久久精品码| 亚洲高清有码在线观看| 亚洲av午夜成人片| 激情综合五月丁香亚洲| 毛片免费观看天天干天天爽 | 中文字幕一区二区三区精彩视频| 日韩中文字幕av有码| 麻豆亚洲自偷拍精品日韩另| 久久波多野结衣av| 久久97超碰色中文字幕| 国产在线超清日本一本| 亚洲国产成人AⅤ片在线观看| 欧美成人精品手机在线| 中文字幕在线亚洲精品| 国产极品粉嫩学生一线天| 最新国产精品拍自在线观看| 国产精品爆乳奶水无码视频免费 | 国产午夜精品视频在线播放| 欧美老熟妇乱子伦牲交视频| 日本免费一区二区三区日本| 正在播放酒店约少妇高潮| 国产高清在线精品一本大道| 色香欲天天影视综合网| 国内精品一区二区不卡| 国产成人亚洲精品狼色在线| 男人扒女人添高潮视频| 久久精品日日躁夜夜躁| 亚州AV无码乱码精品国产| 成年午夜免费韩国做受视频| 国产精品中文字幕久久|