zoukankan      html  css  js  c++  java
  • WPF-悬浮窗(类似于360)

    boss要求开发一个类似于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)) }; }

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

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

  • 相关阅读:
    hadoop 主机名 无法访问问题解决汇总
    Linux 集群时间同步(Ubuntu)
    odoo里面的一些ORM操作
    odoo12动作里添加向导
    odoo看板笔记
    odoo中接口开发
    odoo视图 “动作” 里添加菜单按钮:案例
    odoo源码学习之任务中的阶段字段stage_id
    python中的abstractmethod
    U盘启动盘安装win10出现cdboot:couldn't find ntldr
  • 原文地址:https://www.cnblogs.com/wangqiang3311/p/7928444.html
Copyright © 2011-2022 走看看