首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

WPF做的界面,去除掉了系统边框,怎么实现鼠标拖动界面的功能

2012-11-14 
WPF做的界面,去除掉了系统边框,如何实现鼠标拖动界面的功能 ?WPF做了一个小程序,为了好看去掉了系统自带的

WPF做的界面,去除掉了系统边框,如何实现鼠标拖动界面的功能 ?
WPF做了一个小程序,为了好看去掉了系统自带的边框,就是包括了最大化,最小化,关闭按钮的那个蓝色的系统边框,
然后背景用了一张自定义的图片,现在想实现的是手动背景图片时,整个窗体跟随移动,就像手动KMPlayer的界面一样,
于是在这个背景图片的MouseLeftButtonDown,MouseMove,MouseLeftButtonUp三个事件响应方法中做了处理,当检测到鼠标移动就同时把窗口的Left,Top值改变相应的距离,来实现指针拖动窗口的效果。

但是实际使用时拖动很不流畅,有残影,请问大家有什么更好的方法么?谢谢。

[解决办法]
windowless 
this.MouseLeftButtonDown += delegate { DragMove(); };
[解决办法]
你说的效果不好是指什么,是不是图片太大了?
[解决办法]
Form 的属性 ,有设置 最大,最小的 显示 和 边框样式的 属性。

showMax
showMin
broderStyle 

有这3个样式的。设置就可以了啊
[解决办法]

C# code
public partial class MainWindow{    // 在类里增加下列定义     public const int WM_NCLBUTTONDOWN = 0xA1;    public const int HT_CAPTION = 0x2;    [DllImport("user32.dll")] public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);    [DllImport("user32.dll")] public static extern bool ReleaseCapture();    public MainWindow()    {        InitializeComponent();                    // 在Window的构造函数里增加下列语句:        MouseLeftButtonDown += (o, args) =>            {                var hwnd = new WindowInteropHelper(this).Handle;                ReleaseCapture();                SendMessage(hwnd, WM_NCLBUTTONDOWN, HT_CAPTION, 0);            };    }}
[解决办法]
设置了WindowStyle = System.Windows.WindowStyle.None;吗?

C# code
        private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)        {           this.DragMove();        }
[解决办法]
嗯嗯,第一种好
[解决办法]
wpf拖放功能实现
http://www.cnblogs.com/loveis715/archive/2011/12/05/2277384.html

热点排行