WPF-悬浮窗(类似于360)

如下图所示:

目前采用的是wpf做的客户端,之前有个winform的项目,我参考了下,完成了wpf版的悬浮窗。

Height="52" Width="131"  WindowStartupLocation="Manual"  ShowInTaskbar="False"  WindowStyle="None"  WindowState="Normal" 

MouseLeftButtonDown="Window_MouseLeftButtonDown" Closed="Window_Closed" SnapsToDevicePixels="True" ResizeMode="NoResize"  AllowsTransparency="True"

以上窗口属性:

定义了窗口大小,启动位置(手动设置),窗口样式(透明,去掉默认样式),鼠标左键按下事件(实现拖动)

复制代码

       /// <summary>
        /// 窗口拖动
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            this.DragMove();
        }

复制代码

因为去掉了默认的窗体效果,失去了默认窗口拖动功能,所以又给加上。

 void FloatWindow_Loaded(object sender, RoutedEventArgs e)
        {
            this.Topmost = true;
            this.Left = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width - 300;
            this.Top = 300;
        }

窗体在加载后,控制它显示在屏幕最前端,以及位置。

复制代码

        private static readonly string TipToolAll = "pack://application:,,,/Skin/images/TipToolMainHover.png";       
        public FloatWindow()
        {
            InitializeComponent();
            this.Background = new ImageBrush
            {
                ImageSource = new BitmapImage(new Uri(TipToolAll))
            };
        }

复制代码

窗体初始化时,设置背景图片。

小结:其实就是一个普通的窗体上面,设置了它的显示位置以及显示在屏幕的最上层等其它一些属性而已。

猜你喜欢

转载自blog.csdn.net/bruce135lee/article/details/81112018
今日推荐