简介:

这是利用WPF作为前端技术,实现桌面版微信多客服系统。项目采用Prism作为前端框架,采用MVVM模式极好的对UI和逻辑代码分离,使用MefBootstrapper集成的MEF IOC容器,解耦各模块对象。合理利用 IEventAggregator 实现事件和交互。文章在介绍对应功能时候会给出相关实现的参考,读者可以参考改进,引入到自己的项目中。

程序运行界面及功能预览:

一、登陆:

功能:支持记住用户和用户设置,可选择记住用户密码。

实现相关:

自定义登陆窗口,引入Microsoft.Windows.Shell。可参考 WPF Custom Chrome Library 和 MSDN WindowChrome Class有相关自定义窗口实现。

最小化、最大化、关闭按钮功能实现可参考上面的例子。

登陆按钮,自定义Style,重写Button的Template,参考代码如下:

View Code

记住密码,采用 XmlSerializer 把用户信息序列化到本地xml配置文件中,程序启动时加载该xml配置文件。用法 MSDN XmlSerializer

二、聊天窗口,信息发送

功能:文字发送,表情发送,图片发送,屏幕截图,快捷回复

RichTextBox 相关实现:文字,表情,图片所有输入都是在富文本框 里实现,因此针对 TextChanged 事件对输入进行一系列处理。

文字:不用做任何处理。

表情:文本框里输入的是表情的转义符号,然后根据转义符号找到对应表情图片进行替换。InlineUIContainer

Gif 动态图:WPF中不支持Gif,所以要编写自定义用户控件作为用来显示gif表情。参考 周银辉[WPF疑难]在WPF中显示动态GIF

截图功能:源码在网上找到的,是Winform的一个截图。做了小许修改引进到项目。

三、客户列表

控件为 TabControl,重写了TabControl 的Style 和 TabItem的Style

View Code

四、快捷回复面板

应用 TreeView 加 HierarchicalDataTemplate 实现树形列表。

五、转接客户

自定义转接客户窗口,样式Xaml代码如下:

View Code

转接客户列表,样式Xaml代码如下:

状态

工号

昵称

View Code

关于以上控件的事件与命令,引进System.Windows.Interactivity.

在Xmal中导入命名控件 xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"

使用代码如下:

>

View Code

系统运行截图:

说明:

程序UI布局及展示为模仿微信多客服官方程序,所有样式源码为本人所写及参考网上部分资源。

小结:

本文只作了简单的介绍,主要介绍UI上的一些实现和功能介绍。具体后台业务逻辑看以后能否补上,包括Prism使用,和微信公众号相关的知识。

博客地址:http://www.cnblogs.com/zhoujunding

博客版权:本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置标明原文连接并保留此处说明。

如果文中有不妥或者错误的地方还望您指出,以免让读者产生误解。

感谢您的阅读,喜欢就点个赞,【推荐】一下!

java微信公众号多客服_WPF 实现微信公众号多客服(效果实现篇)相关推荐

  1. java实现客服转接_Java微信公众平台开发(9) 关键字回复以及客服接口实现

    我们在微信公众号的后台可以发现微信给我们制定了两种模式,一种是开发者模式(也就是我们一直在做的开发),还有一种模式是编辑模式,然而很蛋疼的是有些功能一旦我们切换到开发者模式下就无法使用了,比较典型的就 ...

  2. 唯一客服系统(独立部署无限多开)-知识库ChatGPT-支持微信公众号小程序-钉钉-PC和H5全渠道客服系统...

    产品介绍 唯一客服系统是基于Golang语言自主开发的在线客服系统. 创立于2019年初,是一款连接企业与客户的即时通讯项目,遵循快速.简洁的开发原则,是为中小企业量身定制的全渠道客服系统,致力于帮助 ...

  3. php微信公众号向指定客服发信息,微信公众号给用户发送一条消息 客服消息

    可以用客服消息接口或模板消息接口实现.但是需要认证公众号才能有权限. 认证服务号可以发送客服接口消息[需要对应openid24小时内有互动]和模板消息,订阅号则没有模板消息权限. 下面是发送客服消息的 ...

  4. 客服系统对接微信公众号-访客在聊天界面扫码-临时访客绑定公众号OpenID可接收客服回复消息通知...

    访客在线咨询有以下几个问题: 1. 访客打开聊天窗口,一般情况下都是临时访客,只存在于当前浏览器. 2. 浏览器清理缓存,或者换一个浏览器,访客ID会重新生成就会变成一个新访客. 3. 访客咨询后,关 ...

  5. Java开发微信公众号之整合weixin-java-tools框架开发微信公众号

    微信开发者接入文档 : https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319 微信公众平台测试账号申请: http ...

  6. .net中如何同步获取数据方式增加一样数据自动刷新列表_知客CRM如何对接微信公众号...

    如果您的企业正在运营微信公众号,您可以将公众号上的粉丝和知客CRM中的客户信息进行身份绑定,这样公众号的粉丝就有了一个客户ID,能够与CRM系统进行业务交互,比如浏览公司产品.下单到CRM.发起投诉流 ...

  7. java微信公众号短信验证码_解决微信端公众号网页获取短信验证码ajax重复调用两次的问题...

    问题背景介绍: 微信公众号网页开发的时候,点击发送短信验证码,如果响应时间超长,目前测试是10秒左右(这个10秒左右,是我自己多次测试总结出来的规律) 超过10秒左右,就会自动请求第二遍,这个问题挺恶 ...

  8. java识别农作物病虫害源码,一种基于微信公众号的农作物虫害识别方法及其系统与流程...

    本发明涉及农业技术领域,具体涉及一种基于微信公众号的农作物虫害识别方法及其系统. 背景技术: 针对目前我国农作物害虫诊断大多停留在人工阶段,存在着客观性差.效率低.劳动强度大等问题,以及现有的基于图像 ...

  9. 【从零搭建一个淘宝客公众号03】- 如何创建一个微信公众号

    什么是微信公众号 相信大家肯定都用过微信,百分之80以上的微信用户都关注微信公众号.那么什么是微信公众号呢?腾讯在微信现有的基础上开发了一个新的功能模块,叫微信公众平台.开发者或者商家可以在微信公众平 ...

最新文章

  1. 【Maven】maven 插件开发实战
  2. ttl传输中过期的原因_Redis流行的原因
  3. 全栈工程师的思考 | 步步进阶经验之谈
  4. 中标麒麟/NeoKylin 安装QT开发环境
  5. s3c6410 ddr初始化
  6. mysql fulltext类型_mysql索引类型:FULLTEXT、NORMAL、SPATIAL、UNIQUE的详细介绍(转)
  7. delphi中的Format函数详解
  8. 时间序列谐波分析(HANTS)的MATLAB实现
  9. PAT|1147 Heaps(最大堆、最小堆、二叉树的遍历)
  10. 走进MyBatis源码一探Spring扩展点「知识点多多」「扩展点实战系列」- 第449篇
  11. 学习LSL:Locate-Globally-Segment-locally
  12. Could not find a declaration file for module
  13. 我与编程,编程予我。
  14. 网络安全基本属性和STRIDE
  15. 批量添加AD账号(一)
  16. 2225. 找出输掉零场或一场比赛的玩家
  17. C++ typename详解
  18. 黄金分割法python实现
  19. 世界上各种壮观震撼奇景。也许你这辈子都看不到了!
  20. Java中的main( )函数

热门文章

  1. 在桥式结构中的注意事项 — 探头的CMRR
  2. python删除字符串中重复字符_删除字符串中重复字符python 用CAD怎么画DNA反向
  3. PHP课程网站络管理系统(源代码+论文)
  4. git 如何创建分支并且同步到远程
  5. 关于Linux内核源代码情景分析的点点滴滴
  6. 西安网站建设比较好的公司汇总
  7. 解决阿里云ECS安装Mysql失败:GPG密钥已安装,但是不适用于此软件包
  8. 计算机组成与设计并行乘法器,数字逻辑与计算机组成
  9. TDM+SDH+WDM+OTN+MPLS+PTN
  10. 分布式ceph存储部署