WPF-悬浮窗(类似于360)

摘要:
boss要求开发一个类似于360的悬浮窗,如下图所示:目前采用的是wpf做的客户端,之前有个winform的项目,我参考了下,完成了wpf版的悬浮窗。voidFloatWindow_Loaded{this.Topmost=true;this.Left=System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width-300;this.Top=300;}窗体在加载后,控制它显示在屏幕最前端,以及位置。

boss要求开发一个类似于360的悬浮窗,如下图所示:

WPF-悬浮窗(类似于360)第1张

目前采用的是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(objectsender, MouseButtonEventArgs e)
        {
            this.DragMove();
        }

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

 void FloatWindow_Loaded(objectsender, 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";
publicFloatWindow() { InitializeComponent(); this.Background = newImageBrush { ImageSource = new BitmapImage(newUri(TipToolAll)) }; }

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

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

免责声明:文章转载自《WPF-悬浮窗(类似于360)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇LibTorch实战六:U2-Net实战部署&amp;lt;三&amp;gt;WIN32API获取进程句柄的2种方式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

WPF-带有GridView的ListView样式

ListView是展示数据的常用控件,这里简单对带有GridView的ListView样式进行设置。 <Style TargetType="{x:Type ListViewItem}"> <Style.Triggers> <Trigger Property="IsSel...

VB.NET Winform的一些功能实现

近段时间,开发的需要,需要写一个winform的程序。用VB.NET来写。 开发开始,需要实现一个窗体设为多文档界面 (MDI) 子窗体的容器。实现这个功能,开始找资料,得知设置一个属性:Form.IsMdiContainer,它默认值为False,没为True即可。 或者是form Load时添加一句程序: 接下来,又需要为窗体容器的背景设置颜色: M...

WPF中内嵌网页的两种方式

在wpf程序中,有时会内嵌网页。内嵌网页有两种方法,一种是使用wpf自带WebBrowser控件来调用IE内核,另一种是使用CefSharp包来调用chrom内核。 一、第一种使用自带WebBrowser: 1、直接在界面XAML文件中添加如下代码 1 <Grid> 2 <Grid.RowDefinitions> 3...

WPF值通用的类型转换器详解(转)

http://www.dxysoft.com/article/html/4005.html 在WPF中应用数据绑定时经常需要做一些简单的逻辑判断。比如ViewModel中有一个HasError(布尔值)的属性表示是否有错误。我需要将它绑定于Button的IsEnable属性上,即:当没有错误时Button可用。 这时就需要将HasError取反。WPF默...

[WPF](小结1)ListBox嵌套ListBox

思路:大项目的每项中包含一个小项目集合,用ListBox嵌套ListBox或ListBox嵌套ItemsCtrol是个比较好的方式,现总结如下: 第一:先构建题目类,再建一个选项类,题目类集合中的每个项包含一个选项类集合,即数组嵌套数组,C#语句如下: (为方便看清语句,类直接写在主程序中) usingSystem; usingSystem.C...

新认知之WinForm窗体程序

Windows应用程序和控制台应用程序有很大的区别 》Form1.cs :窗体文件,程序员对窗体编写的代码一般都存放在这个文件中。 》Form1.Designer.cs :窗体设计文件,其中的代码是有Visual Studio自动生成的,一般不需要修改。 》Form1.resx :资源文件,用来配置当前窗体所使用的字符串,图片等资源。 》Program.c...