原文标题:用wpf实现微信公众号多客服功能
简介:
这是利用WPF作为前端技术,实现桌面版微信多客服系统。项目采用Prism作为前端框架,采用MVVM模式极好的对UI和逻辑代码分离,使用MefBootstrapper集成的MEF IOC容器,解耦各模块对象。合理利用 IEventAggregator 实现事件和交互。文章在介绍对应功能时候会给出相关实现的参考,读者可以参考改进,引入到自己的项目中。
程序运行界面及功能预览:
一、登陆:
功能:支持记住用户和用户设置,可选择记住用户密码。
实现相关:
自定义登陆窗口,引入Microsoft.Windows.Shell。可参考 WPF Custom Chrome Library 和 MSDN WindowChrome Class 有相关自定义窗口实现。
最小化、最大化、关闭按钮功能实现可参考上面的例子。
登陆按钮,自定义Style,重写Button的Template,参考代码如下:
<Style x:Key="LogginButton" TargetType="{x:Type Button}">登录后复制</Style>
View Code
记住密码,采用 XmlSerializer 把用户信息序列化到本地xml配置文件中,程序启动时加载该xml配置文件。用法 MSDN XmlSerializer
二、聊天窗口,信息发送
功能:文字发送,表情发送,图片发送,屏幕截图,快捷回复
RichTextBox 相关实现:文字,表情,图片所有输入都是在富文本框 里实现,因此针对 TextChanged 事件对输入进行一系列处理。
文字:不用做任何处理。
表情:文本框里输入的是表情的转义符号,然后根据转义符号找到对应表情图片进行替换。InlineUIContainer
Gif 动态图:WPF中不支持Gif,所以要编写自定义用户控件作为用来显示gif表情。参考 周银辉 [WPF疑难]在WPF中显示动态GIF
截图功能:源码在网上找到的,是Winform的一个截图。做了小许修改引进到项目。
参考:C# 实现完整功能的截图控件(4)-完整版 http://www.huida178.com/
三、客户列表
控件为 TabControl,重写了TabControl 的Style 和 TabItem的Style
<Style x:Key="CustomerTabStyle" TargetType="{x:Type TabControl}">登录后复制</Style> <Style x:Key="ConnectedTabItemStyle" TargetType="{x:Type TabItem}"> </Style>
View Code
四、快捷回复面板
应用 TreeView 加 HierarchicalDataTemplate 实现树形列表。
五、转接客户
自定义转接客户窗口,样式Xaml代码如下:
<Style x:Key="NoResize_Window" TargetType="{x:Type Window}">登录后复制</Style> <!--Icon and Title-->
View Code
转接客户列表,样式Xaml代码如下:
<Style x:Key="OnlineUserListBoxStyle" TargetType="{x:Type ListBox}">登录后复制</Style> <Style x:Key="OnlineUserListBoxItemStyle" TargetType="{x:Type ListBoxItem}"> 状态 工号 昵称 </Style>
View Code
关于以上控件的事件与命令,引进System.Windows.Interactivity.
在Xmal中导入命名控件 xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
使用代码如下:
登录后复制
View Code
系统运行截图:
说明:
程序UI布局及展示为模仿微信多客服官方程序,所有样式源码为本人所写及参考网上部分资源。
程序中所用图标来源于这两个资源库:http://www.huida178.com/ http://www.huida178.com/
小结:
本文只作了简单的介绍,主要介绍UI上的一些实现和功能介绍。具体后台业务逻辑看以后能否补上,包括Prism使用,和微信公众号相关的知识。
博客地址:http://www.huida178.com/
博客版权:本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置标明原文连接并保留此处说明。
如果文中有不妥或者错误的地方还望您指出,以免让读者产生误解。
感谢您的阅读,喜欢就点个赞,【推荐】一下!
免责 声明
1、本网站名称:慧达安全导航
2、本站永久网址:https//www.huida178.com/
3、本站所有资源来源于网友投稿和高价购买,所有资源仅对编程人员及源代码爱好者开放下载做参考和研究及学习,本站不提供任何技术服务!
4、本站所有资源的属示图片和信息不代表本站的立场!本站只是储蓄平台及搬运
5、下载者禁止在服务器和虚拟机下进行搭建运营,本站所有资源不支持联网运行!只允许调试,参考和研究!!!!
6、未经原版权作者许可禁止用于任何商业环境,任何人不得擅作它用,下载者不得用于违反国家法律,否则发生的一切法律后果自行承担!
7、为尊重作者版权,请在下载24小时内删除!请购买原版授权作品,支持你喜欢的作者,谢谢!
8.若资源侵犯了您的合法权益,请持 您的版权证书和相关原作品信息来信通知我们!QQ:1247526623我们会及时删除,给您带来的不便,我们深表歉意!
9、如下载链接失效、广告或者压缩包问题请联系站长处理
10、如果你也有好源码或者教程,可以发布到网站,分享有金币奖励和额外收入!
11、本站资源售价只是赞助,收取费用仅维持本站的日常运营所需
12、因源码具有可复制性,一经赞助,不得以任何形式退款。
13、本文内容由网友自发贡献和站长收集,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系1247526623@qq.com
转载请注明出处: 慧达安全导航 » 用WPF实现微信公众号多客服功能
发表评论 取消回复