skinm.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using System.Drawing.Drawing2D;
  9. namespace US.Browser.IE
  10. {
  11. /// <summary>
  12. /// 绘图层
  13. /// </summary>
  14. public partial class skinm : Form
  15. {
  16. private skinform _um; //显示层
  17. public skinm(skinform um, Point xy)
  18. {
  19. InitializeComponent();
  20. //设置值
  21. _um = um; TopMost = um.TopMost; um.BringToFront(); Location = xy; Icon = um.Icon; ShowIcon = um.ShowIcon; Width = um.Width + 10; Height = um.Height + 10; Text = um.Text;
  22. }
  23. public void SetBits()
  24. {
  25. //绘制绘图层背景
  26. //Bitmap bitmap = new Bitmap(_um.Width + 10, _um.Height + 10);
  27. //Rectangle _BacklightLTRB = new Rectangle(20, 20, 20, 20);//窗体光泽重绘边界
  28. //Graphics g = Graphics.FromImage(bitmap);
  29. //g.SmoothingMode = SmoothingMode.HighQuality; //高质量
  30. //g.PixelOffsetMode = PixelOffsetMode.HighQuality; //高像素偏移质量
  31. //ImageDrawRect.DrawRect(g, Properties.Resources.main_light_bkg_top123, ClientRectangle, Rectangle.FromLTRB(_BacklightLTRB.X, _BacklightLTRB.Y, _BacklightLTRB.Width, _BacklightLTRB.Height), 1, 1);
  32. //if (!Bitmap.IsCanonicalPixelFormat(bitmap.PixelFormat) || !Bitmap.IsAlphaPixelFormat(bitmap.PixelFormat))
  33. // throw new ApplicationException("图片必须是32位带Alhpa通道的图片。");
  34. //IntPtr oldBits = IntPtr.Zero;
  35. //IntPtr screenDC = Win32.GetDC(IntPtr.Zero);
  36. //IntPtr hBitmap = IntPtr.Zero;
  37. //IntPtr memDc = Win32.CreateCompatibleDC(screenDC);
  38. //try
  39. //{
  40. // Win32.Point topLoc = new Win32.Point(Left, Top);
  41. // Win32.Size bitMapSize = new Win32.Size(Width, Height);
  42. // Win32.BLENDFUNCTION blendFunc = new Win32.BLENDFUNCTION();
  43. // Win32.Point srcLoc = new Win32.Point(0, 0);
  44. // hBitmap = bitmap.GetHbitmap(Color.FromArgb(0));
  45. // oldBits = Win32.SelectObject(memDc, hBitmap);
  46. // blendFunc.BlendOp = Win32.AC_SRC_OVER;
  47. // blendFunc.SourceConstantAlpha = Byte.Parse("255");
  48. // blendFunc.AlphaFormat = Win32.AC_SRC_ALPHA;
  49. // blendFunc.BlendFlags = 0;
  50. // Win32.UpdateLayeredWindow(Handle, screenDC, ref topLoc, ref bitMapSize, memDc, ref srcLoc, 0, ref blendFunc, Win32.ULW_ALPHA);
  51. //}
  52. //finally
  53. //{
  54. // if (hBitmap != IntPtr.Zero)
  55. // {
  56. // Win32.SelectObject(memDc, oldBits);
  57. // Win32.DeleteObject(hBitmap);
  58. // }
  59. // Win32.ReleaseDC(IntPtr.Zero, screenDC);
  60. // Win32.DeleteDC(memDc);
  61. //}
  62. }
  63. }
  64. //public partial class ImageDrawRect
  65. //{
  66. // public static ContentAlignment anyRight = ContentAlignment.BottomRight | (ContentAlignment.MiddleRight | ContentAlignment.TopRight);
  67. // public static ContentAlignment anyTop = ContentAlignment.TopRight | (ContentAlignment.TopCenter | ContentAlignment.TopLeft);
  68. // public static ContentAlignment anyBottom = ContentAlignment.BottomRight | (ContentAlignment.BottomCenter | ContentAlignment.BottomLeft);
  69. // public static ContentAlignment anyCenter = ContentAlignment.BottomCenter | (ContentAlignment.MiddleCenter | ContentAlignment.TopCenter);
  70. // public static ContentAlignment anyMiddle = ContentAlignment.MiddleRight | (ContentAlignment.MiddleCenter | ContentAlignment.MiddleLeft);
  71. // /// <summary>
  72. // /// 绘图对像
  73. // /// </summary>
  74. // /// <param name="g">绘图对像</param>
  75. // /// <param name="img">图片</param>
  76. // /// <param name="r">绘置的图片大小、坐标</param>
  77. // /// <param name="lr">绘置的图片边界</param>
  78. // /// <param name="index">当前状态</param>
  79. // /// <param name="Totalindex">状态总数</param>
  80. // public static void DrawRect(Graphics g, Bitmap img, Rectangle r, Rectangle lr, int index, int Totalindex)
  81. // {
  82. // if (img == null) return;
  83. // Rectangle r1, r2;
  84. // int x = (index - 1) * img.Width / Totalindex;
  85. // int y = 0;
  86. // int x1 = r.Left;
  87. // int y1 = r.Top;
  88. // if (r.Height > img.Height && r.Width <= img.Width / Totalindex)
  89. // {
  90. // r1 = new Rectangle(x, y, img.Width / Totalindex, lr.Top);
  91. // r2 = new Rectangle(x1, y1, r.Width, lr.Top);
  92. // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
  93. // r1 = new Rectangle(x, y + lr.Top, img.Width / Totalindex, img.Height - lr.Top - lr.Bottom);
  94. // r2 = new Rectangle(x1, y1 + lr.Top, r.Width, r.Height - lr.Top - lr.Bottom);
  95. // if ((lr.Top + lr.Bottom) == 0) r1.Height = r1.Height - 1;
  96. // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
  97. // r1 = new Rectangle(x, y + img.Height - lr.Bottom, img.Width / Totalindex, lr.Bottom);
  98. // r2 = new Rectangle(x1, y1 + r.Height - lr.Bottom, r.Width, lr.Bottom);
  99. // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
  100. // }
  101. // else
  102. // if (r.Height <= img.Height && r.Width > img.Width / Totalindex)
  103. // {
  104. // r1 = new Rectangle(x, y, lr.Left, img.Height);
  105. // r2 = new Rectangle(x1, y1, lr.Left, r.Height);
  106. // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
  107. // r1 = new Rectangle(x + lr.Left, y, img.Width / Totalindex - lr.Left - lr.Right, img.Height);
  108. // r2 = new Rectangle(x1 + lr.Left, y1, r.Width - lr.Left - lr.Right, r.Height);
  109. // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
  110. // r1 = new Rectangle(x + img.Width / Totalindex - lr.Right, y, lr.Right, img.Height);
  111. // r2 = new Rectangle(x1 + r.Width - lr.Right, y1, lr.Right, r.Height);
  112. // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
  113. // }
  114. // else
  115. // if (r.Height <= img.Height && r.Width <= img.Width / Totalindex)
  116. // {
  117. // r1 = new Rectangle((index - 1) * img.Width / Totalindex, 0, img.Width / Totalindex, img.Height - 1);
  118. // g.DrawImage(img, new Rectangle(x1, y1, r.Width, r.Height), r1, GraphicsUnit.Pixel);
  119. // }
  120. // else if (r.Height > img.Height && r.Width > img.Width / Totalindex)
  121. // {
  122. // //top-left
  123. // r1 = new Rectangle(x, y, lr.Left, lr.Top);
  124. // r2 = new Rectangle(x1, y1, lr.Left, lr.Top);
  125. // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
  126. // //top-bottom
  127. // r1 = new Rectangle(x, y + img.Height - lr.Bottom, lr.Left, lr.Bottom);
  128. // r2 = new Rectangle(x1, y1 + r.Height - lr.Bottom, lr.Left, lr.Bottom);
  129. // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
  130. // //left
  131. // r1 = new Rectangle(x, y + lr.Top, lr.Left, img.Height - lr.Top - lr.Bottom);
  132. // r2 = new Rectangle(x1, y1 + lr.Top, lr.Left, r.Height - lr.Top - lr.Bottom);
  133. // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
  134. // //top
  135. // r1 = new Rectangle(x + lr.Left, y,
  136. // img.Width / Totalindex - lr.Left - lr.Right, lr.Top);
  137. // r2 = new Rectangle(x1 + lr.Left, y1,
  138. // r.Width - lr.Left - lr.Right, lr.Top);
  139. // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
  140. // //right-top
  141. // r1 = new Rectangle(x + img.Width / Totalindex - lr.Right, y, lr.Right, lr.Top);
  142. // r2 = new Rectangle(x1 + r.Width - lr.Right, y1, lr.Right, lr.Top);
  143. // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
  144. // //Right
  145. // r1 = new Rectangle(x + img.Width / Totalindex - lr.Right, y + lr.Top,
  146. // lr.Right, img.Height - lr.Top - lr.Bottom);
  147. // r2 = new Rectangle(x1 + r.Width - lr.Right, y1 + lr.Top,
  148. // lr.Right, r.Height - lr.Top - lr.Bottom);
  149. // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
  150. // //right-bottom
  151. // r1 = new Rectangle(x + img.Width / Totalindex - lr.Right, y + img.Height - lr.Bottom,
  152. // lr.Right, lr.Bottom);
  153. // r2 = new Rectangle(x1 + r.Width - lr.Right, y1 + r.Height - lr.Bottom,
  154. // lr.Right, lr.Bottom);
  155. // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
  156. // //bottom
  157. // r1 = new Rectangle(x + lr.Left, y + img.Height - lr.Bottom,
  158. // img.Width / Totalindex - lr.Left - lr.Right, lr.Bottom);
  159. // r2 = new Rectangle(x1 + lr.Left, y1 + r.Height - lr.Bottom,
  160. // r.Width - lr.Left - lr.Right, lr.Bottom);
  161. // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
  162. // //Center
  163. // r1 = new Rectangle(x + lr.Left, y + lr.Top,
  164. // img.Width / Totalindex - lr.Left - lr.Right, img.Height - lr.Top - lr.Bottom);
  165. // r2 = new Rectangle(x1 + lr.Left, y1 + lr.Top,
  166. // r.Width - lr.Left - lr.Right, r.Height - lr.Top - lr.Bottom);
  167. // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
  168. // }
  169. // }
  170. // ///// <summary>
  171. // ///// 绘图对像
  172. // ///// </summary>
  173. // ///// <param name="g"> 绘图对像</param>
  174. // ///// <param name="obj">图片对像</param>
  175. // ///// <param name="r">绘置的图片大小、坐标</param>
  176. // ///// <param name="index">当前状态</param>
  177. // ///// <param name="Totalindex">状态总数</param>
  178. // //public static void DrawRect(Graphics g, Bitmap img, Rectangle r, int index, int Totalindex)
  179. // //{
  180. // // if (img == null) return;
  181. // // int width = img.Width / Totalindex;
  182. // // int height = img.Height;
  183. // // Rectangle r1, r2;
  184. // // int x = (index - 1) * width;
  185. // // int y = 0;
  186. // // int x1 = r.Left;
  187. // // int y1 = r.Top;
  188. // // r1 = new Rectangle(x, y, width, height);
  189. // // r2 = new Rectangle(x1, y1, r.Width, r.Height);
  190. // // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
  191. // //}
  192. // //public static Rectangle HAlignWithin(Size alignThis, Rectangle withinThis, ContentAlignment align)
  193. // //{
  194. // // if ((align & anyRight) != (ContentAlignment)0)
  195. // // {
  196. // // withinThis.X += (withinThis.Width - alignThis.Width);
  197. // // }
  198. // // else if ((align & anyCenter) != ((ContentAlignment)0))
  199. // // {
  200. // // withinThis.X += ((withinThis.Width - alignThis.Width + 1) / 2);
  201. // // }
  202. // // withinThis.Width = alignThis.Width;
  203. // // return withinThis;
  204. // //}
  205. // //public static Rectangle VAlignWithin(Size alignThis, Rectangle withinThis, ContentAlignment align)
  206. // //{
  207. // // if ((align & anyBottom) != ((ContentAlignment)0))
  208. // // {
  209. // // withinThis.Y += (withinThis.Height - alignThis.Height);
  210. // // }
  211. // // else if ((align & anyMiddle) != ((ContentAlignment)0))
  212. // // {
  213. // // withinThis.Y += ((withinThis.Height - alignThis.Height + 1) / 2);
  214. // // }
  215. // // withinThis.Height = alignThis.Height;
  216. // // return withinThis;
  217. // //}
  218. //}
  219. }