WPF:实现无标题栏窗体的拖动

<Window x:Class="TestForNoTitleBar.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid Name="gridRoot" >               
    </Grid>
</Window>
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }    
        
        // 支持标题栏拖动
        protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
        {
            base.OnMouseLeftButtonDown(e);

            // 获取鼠标相对标题栏位置
            Point position = e.GetPosition(gridRoot);

            // 如果鼠标位置在标题栏内,允许拖动
            if (e.LeftButton == MouseButtonState.Pressed)
            {
                if (position.X >= 0 && position.X < gridRoot.ActualWidth && position.Y >= 0 && position.Y < gridRoot.ActualHeight)
                {
                    this.DragMove();
                }
            }
        }
    }

 

posted on 2015-05-06 11:02  老有所依  阅读(404)  评论(0)    收藏  举报

导航