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)) }; }

窗體初始化時,設置背景圖片。

小結:其實就是一個普通的窗體上面,設置了它的顯示位置以及顯示在屏幕的最上層等其它一些屬性而已。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM