.NET技术交流群 199281001 .欢迎加入。

   //自定义窗体拉伸

         public HwndSource _HwndkaifaSource;
private const int WM_SYSCOMMAND = 0x112;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); private Dictionary<ResizeDirection, Cursor> cursors = new Dictionary<ResizeDirection, Cursor>
{
{ResizeDirection.Top, Cursors.SizeNS},
{ResizeDirection.Bottom, Cursors.SizeNS},
{ResizeDirection.Left, Cursors.SizeWE},
{ResizeDirection.Right, Cursors.SizeWE},
{ResizeDirection.TopLeft, Cursors.SizeNWSE},
{ResizeDirection.BottomRight, Cursors.SizeNWSE},
{ResizeDirection.TopRight, Cursors.SizeNESW},
{ResizeDirection.BottomLeft, Cursors.SizeNESW}
};

Register user32.dll

 public enum ResizeDirection
{
/// <summary>
/// 左
/// </summary>
Left = ,
/// <summary>
/// 右
/// </summary>
Right = ,
/// <summary>
/// 上
/// </summary>
Top = ,
/// <summary>
/// 左上
/// </summary>
TopLeft = ,
/// <summary>
/// 右上
/// </summary>
TopRight = ,
/// <summary>
/// 下
/// </summary>
Bottom = ,
/// <summary>
/// 左下
/// </summary>
BottomLeft = ,
/// <summary>
/// 右下
/// </summary>
BottomRight = ,
}

ResizeDirection

         void Window_MouseMove(object sender, MouseEventArgs e)
{ if (Mouse.LeftButton != MouseButtonState.Pressed)
{
FrameworkElement element = e.OriginalSource as FrameworkElement;
if (element != null && !element.Name.Contains("Resize")) this.Cursor = Cursors.Arrow;
} } private void ResizePressed(object sender, MouseEventArgs e)
{ FrameworkElement element = sender as FrameworkElement;
ResizeDirection direction = (ResizeDirection)Enum.Parse(typeof(ResizeDirection), element.Name.Replace("Resize", "")); this.Cursor = cursors[direction];
if (e.LeftButton == MouseButtonState.Pressed) ResizeWindow(direction); } private void ResizeWindow(ResizeDirection direction)
{ SendMessage(_HwndkaifaSource.Handle, WM_SYSCOMMAND, (IntPtr)( + direction), IntPtr.Zero); }

Event

  this.SourceInitialized += delegate(object sender, EventArgs e)
{
this._HwndkaifaSource = PresentationSource.FromVisual((Visual)sender) as HwndSource;
};
this.MouseMove += new MouseEventHandler(Window_MouseMove);

construction

XAML 属性 :MouseMove="ResizePressed" MouseDown="ResizePressed"

最新文章

  1. http协议进阶(一)http概述
  2. ExtAspNet和FineUI未将对象引用设置到对象的实例
  3. MySQL中的锁(表锁、行锁)
  4. 用cryptico.js实现RSA加密(应对cryptico不支持PEM)
  5. mysql忘记root密码
  6. HDU 1052 Tian Ji -- The Horse Racing(贪心)(2004 Asia Regional Shanghai)
  7. cocos2d-x Android 环境搭建问题汇总
  8. Opencv2.4.13 与Visual Studio2013 环境搭建配置
  9. vuejs学习笔记(1)--属性,事件绑定,ajax
  10. MyBatis+PageHelper实现分页
  11. 【Rain in ACStar HDU-3340】
  12. mysql进阶(五)数据表中带OR的多条件查询
  13. Java学习笔记42(数据库连接池 druid连接池)
  14. 【进阶修炼】&mdash;&mdash;改善C#程序质量(9)
  15. python解决组合问题
  16. BI项目简单备份策略
  17. Struts2_day03--OGNL的#、%使用
  18. 3dContactPointAnnotationTool开发日志(七)
  19. ios cocos2d 使用 sneakyInput 插件
  20. Mysql缺少可执行的命令

热门文章

  1. Oracle的if else if
  2. GPS坐标换算为百度坐标
  3. windows下怎么打开psql命令
  4. 通过数据库方式访问excel 2007及其以后(xlsx)文件的连接字符串
  5. i春秋——春秋争霸write up
  6. 技术分析:Femtocell家庭基站通信截获、伪造任意短信
  7. JS开发HTML5游戏《神奇的六边形》(三)
  8. [BZOJ 1295][SCOI2009]最长距离(SPFA+暴力)
  9. jQuery基础之(六)jQuery浏览器的兼容性(以CSS3特写兼容举例)
  10. angular_$inject