简介:

这是利用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. 提高IT运维综合管理能力,实现业务服务管理
  2. buu RSAroll
  3. Eclipse中的插件安装
  4. Spring 框架中的单例Beans 是线程安全的么?
  5. TCP与UDP的区别(未完成,待补充)
  6. 论文浅尝 - AAAI2020 | 基于知识图谱进行对话目标规划的开放域对话生成技术
  7. springmvc controller动态设置content-type
  8. 监控SQL:通过SQL Server的DDL触发器来监控数据库结构的变化(1)
  9. ios xcode文件前缀_关于ios8:Xcode 6错误:“嵌入式二进制文件的包标识符未以父应用程序的包标识符为前缀。”...
  10. bootstrap table 服务器端分页--ashx+ajax
  11. Jmeter进行接口测试流程步骤详解
  12. 紧密中心度(Closeness Centrality)
  13. 置换检验 配对秩和检验
  14. 计算机中输入法切换用户,如何在计算机中切换输入法
  15. deb文件怎么安装(deb文件怎么安装到Cydia)
  16. MSM8916 海信M9模块学习记录一:编译及烧录android5.1源码
  17. 用友预收冲应收处理流程
  18. 清华大学计算机学院软件工程,中国“软件工程”专业最好的3所大学,都是985,清华大学上榜...
  19. (转)如何动手打造属于自己的智能家居
  20. ASWEET项目实施日志

热门文章

  1. 微信小程序使用蓝牙连接设备流程
  2. allegro绘制排针,相同规格4改2 改后会报告引脚不匹配
  3. 拓嘉辰丰电商:拼多多主图怎样把握方向提高点击
  4. 深入理解js中的加载事件
  5. 使用curl进行网站测速
  6. intellij idea 打包war包
  7. jvm垃圾回收的过程
  8. Kyligence at Microsoft Build,助力世界非凡洞见
  9. XStream反序列化漏洞分析
  10. 详解城市大脑总体架构