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 = ; 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(, ));
p.Points.Add(new Point(, ));
p.Points.Add(new Point(, ));
p.Points.Add(new Point( + e.NewSize.Width, ));
p.Points.Add(new Point( + e.NewSize.Width, + e.NewSize.Height));
p.Points.Add(new Point(, + e.NewSize.Height));
p.Points.Add(new Point(, ));
p.Fill = new SolidColorBrush(Color.FromArgb(, , , ));
}
else
{
p.Points.Add(new Point(, ));
p.Points.Add(new Point( + e.NewSize.Width, ));
p.Points.Add(new Point( + e.NewSize.Width, ));
p.Points.Add(new Point( + e.NewSize.Width, ));
p.Points.Add(new Point( + e.NewSize.Width, ));
p.Points.Add(new Point( + e.NewSize.Width, + e.NewSize.Height));
p.Points.Add(new Point(, + e.NewSize.Height));
p.Fill = new SolidColorBrush(Color.FromArgb(, , , ));
}
}
}
Demo分享地址:http://pan.baidu.com/s/1i3KVEp3
运行结果:
WP&Win10仿微信消息框代码分享的更多相关文章
- android 模拟微信消息框 BaseAdapter()方法 [2]
在昨天的微信布局的基础上加内容 http://www.cnblogs.com/Seven-cjy/p/6098024.html 项目下/res/layout下创建一个 listview_layout. ...
- WPF自定义搜索框代码分享
首先下载搜索图标: 控件中的搜索图标下载地址:http://www.easyicon.net/1183666-Search_icon.html 搜索框设计过程比较简单: 1.先定义一个Rectangl ...
- electron聊天室|vue+electron-vue仿微信客户端|electron桌面聊天
一.项目概况 基于Electron+vue+electron-vue+vuex+Nodejs+vueVideoPlayer+electron-builder等技术仿制微信电脑端界面聊天室实例,实现消息 ...
- 原生wcPop.js消息提示框(移动端)、内含仿微信弹窗效果
wcPop.js移动端消息对话框插件是之前的wxPop.js的升级版,优化了js和css,并且新增了仿微信弹窗效果, 是一款含有多种情景模式的原生模态消息对话框代码,可用于替代浏览器默认的alert弹 ...
- uniapp+nvue实现仿微信App界面+功能 —— uni-app实现聊天+语音+视频+图片消息
基于uniapp + nvue实现的uniapp仿微信界面功能聊天应用 txim 实例项目,实现了以下功能. 1: 聊天会话管理 2: 好友列表 3: 文字.语音.视频.表情.位置等聊天消息收发 4: ...
- iOS开发-仿微信图片分享界面实现
分享功能目前几乎已成为很多app的标配了,其中微信,微博等app的图片分享界面设计的很棒,不仅能够展示缩略图,还可以预览删除.最近我在做一款社交分享app,其中就要实现图文分享功能,于是试着自行实现仿 ...
- wpf实现仿qq消息提示框
原文:wpf实现仿qq消息提示框 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/huangli321456/article/details/5052 ...
- iOS天气动画、高仿QQ菜单、放京东APP、高仿微信、推送消息等源码
iOS精选源码 TYCyclePagerView iOS上的一个无限循环轮播图组件 iOS高仿微信完整项目源码 想要更简单的推送消息,看本文就对了 ScrollView嵌套ScrolloView解决方 ...
- 40.qt quick- 高仿微信实现局域网聊天V4版本(支持gif动图表情包、消息聊天、拖动缩放窗口)
在上章37.qt quick- 高仿微信实现局域网聊天V3版本(添加登录界面.UDP校验登录.皮肤更换.3D旋转),我们已经实现了: 添加登录界面. UDP校验登录. 皮肤更换. 3D旋转(主界面和登 ...
随机推荐
- 你所不知道的SQL Server数据库启动过程(用户数据库加载过程的疑难杂症)
前言 本篇主要是上一篇文章的补充篇,上一篇我们介绍了SQL Server服务启动过程所遇到的一些问题和解决方法,可点击查看,我们此篇主要介绍的是SQL Server启动过程中关于用户数据库加载的流程, ...
- esxi安装全过程及基本配置
esxi6.0下载地址 链接: http://pan.baidu.com/s/1jIfg2yU 密码: qacv 支持检测可以参考:http://www.linuxidc.com/Linux/2012 ...
- 在 ServiceModel 客户端配置部分中,找不到引用协定“WebServiceTest.WebServiceSoap”的默认终结点元素。这可能是因为未找到应用程序的配置文件,或者是因为客户端元素
原文 http://blog.csdn.net/bugdemo/article/details/9083497 主题 技术 在引用WebService后,程序运行到实例化WebService时报错, ...
- POJ 3687 Labeling Balls()
Labeling Balls Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9641 Accepted: 2636 Descri ...
- iTOP-4412开发板---Linux系统学习下载步骤
本文转自迅为论坛:http://www.topeetboard.com 1.cd /home/topeet/Linux-simple/console 下建立.c文件 2. 编译命令,就在此目录下 # ...
- noip2008普及组4题题解-rLq
(啊啊啊终于补到了今天的作业了) 本题地址:http://www.luogu.org/problem/show?pid=1058 题目描述 小渊是个聪明的孩子,他经常会给周围的小朋友们将写自己认为有趣 ...
- C++ 之 常量成员函数
类的常量成员函数 (const member function), 可以读取类的数据成员,但是不能修改. 1 声明 1.1 const 关键字 在参数列表后,加 const 关键字,声明为常量成员 ...
- Codeforces Round #370 (Div. 2)B. Memory and Trident
地址:http://codeforces.com/problemset/problem/712/B 题目: B. Memory and Trident time limit per test 2 se ...
- python中BeautifulSoup库中find函数
http://www.crummy.com/software/BeautifulSoup/bs3/documentation.zh.html#contents 简单的用法: find(name, at ...
- HDU 4419 Colourful Rectangle --离散化+线段树扫描线
题意: 有三种颜色的矩形n个,不同颜色的矩形重叠会生成不同的颜色,总共有R,G,B,RG,RB,GB,RGB 7种颜色,问7种颜色每种颜色的面积. 解法: 很容易想到线段树扫描线求矩形面积并,但是如何 ...