WP&Win10仿微信消息框代码分享
上次分享了幸运转盘的源码,感觉小伙伴们很喜欢;这次和大家分享下通信相关部分需要用到的类似微信的消息框代码,有需要的童鞋可以拿去用哟。自己尝试写的,可能有点low,勿喷呀!
希望以后有好的东西大家都分享下,相互学习,感兴趣的童鞋欢迎加入我的Win10开发者群:53078485,共同探讨!
下面是仿微信消息框实现思路+核心代码:
思路:
1.用 Polygon绘制对话框。
2.通过遍历可视化树获取ListView子项目的Polygon属性。
3.获取Textblock的Size。由于Textblock的Size是不固定的,可以通过在Textblock的SizeChange方法获得Size。
代码:
//FindVisiualChild可以遍历可视化树,获取对应需要的属性。
private ChildType FindVisualChild<ChildType>(DependencyObject obj) where ChildType : DependencyObject { for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++) { DependencyObject child = VisualTreeHelper.GetChild(obj, i); //Debug.WriteLine(child.GetType().ToString()); if (child != null && child is ChildType) { return child as ChildType; } else { ChildType childOfChildren = FindVisualChild<ChildType>(child); if (childOfChildren != null) { return childOfChildren; } } } return null; }
//通过TextBlock的SizeChange事件,获取TextBlock的Size,并用Polygon绘制对话框。
private void TextBlock_SizeChanged(object sender, SizeChangedEventArgs e) { //获取子项目下的polygon属性。 Polygon p = FindVisualChild<Polygon>((sender as TextBlock).Parent); p.Points.Clear(); if ((sender as TextBlock).HorizontalAlignment == HorizontalAlignment.Left) { p.Points.Add(new Point(0, 15)); p.Points.Add(new Point(5, 10)); p.Points.Add(new Point(5, 0)); p.Points.Add(new Point(15 + e.NewSize.Width, 0)); p.Points.Add(new Point(15 + e.NewSize.Width, 20 + e.NewSize.Height)); p.Points.Add(new Point(5, 20 + e.NewSize.Height)); p.Points.Add(new Point(5, 20)); p.Fill = new SolidColorBrush(Color.FromArgb(255, 255, 255, 255)); } else { p.Points.Add(new Point(5, 0)); p.Points.Add(new Point(15 + e.NewSize.Width, 0)); p.Points.Add(new Point(15 + e.NewSize.Width, 10)); p.Points.Add(new Point(20 + e.NewSize.Width, 15)); p.Points.Add(new Point(15 + e.NewSize.Width, 20)); p.Points.Add(new Point(15 + e.NewSize.Width, 20 + e.NewSize.Height)); p.Points.Add(new Point(5, 20 + e.NewSize.Height)); p.Fill = new SolidColorBrush(Color.FromArgb(255, 81, 186, 35)); } } }
Demo分享地址:http://pan.baidu.com/s/1i3KVEp3
运行结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?