prism

【WPF】影城售票客户端的技术框架

痞子三分冷 提交于 2020-04-28 18:49:27
前言 影城客户端从16年底开始设计到现在都过去快两年了,这里我做一个简单的回顾。 技术选型 NativeUI:性能最高,开发难度最大,代表产品QQ和微信,没有基因没有技术栈。 Electron+H5:不支持xp,使用xp的电脑在影城中还存在50%以上,只能否决。 NWJS+H5:总体上比Electron差一些,但是支持xp,因为存在性能,操作体验,安装包庞大等问题,被钉钉弃用。 NativeUI+CEF+H5:hybird框架,将性能要求高的UI用C++写,变化频繁的用h5写,钉钉客户端最新采用的技术框架。网易云音乐客户端也是类似框架。也没有技术栈。 WinForm:.Net平台下的两大UI框架之一,具有开发简单,轻量,性能高等优点,但是有自定义UI难度高,微软停止更新等缺点。 WPF:.Net平台下的两大UI框架之一,具有现代化的UI界面和比较先进的MVVM编程思想。公司上代产品使用的技术,具有广泛的实践经验,读卡和打印等类库可以直接继承使用。这是最不容易采坑的技术方案。 当时公司的战略是用迅雷不及掩耳之势打下云售票这片新市场,一边要和时间赛跑,一边要保证产品质量和功能,需要开发节奏要快,狠,准,所以综上所述,最终沿用WPF技术开发新产品。 一个优秀系统架构应该是具有高可扩展性、高内聚、低耦合等特点,在经历了各版本的变更之后依然保持着清晰、灵活、稳定的系统架构

C#/.Net Core/WPF框架初建(国际化、主题色)

两盒软妹~` 提交于 2020-04-18 14:41:43
C#/.Net Core/WPF框架初建(国际化、主题色) English | 简体中文 作为 TerminalMACS 的一个子进程模块 - WPF管理端,目前搭建框架部分功能:本地化、国际化、主题色修改等。 导航目录 框架已添加功能说明 1.1. 国际化、本地化 1.2. Metro风格主窗体 1.3. 动态更换主题色 关于TerminalMACS及本WPF管理端 关于项目开源 参考资料 1. 框架已添加功能说明 1.1. 国际化、本地化 源码放在Github上,希望分享给更多人,所以添加了国际化功能,默认支持中、英、日三国语言,按照已有套路扩展其他语言也方便,看下面的效果: 本项目(TerminalMACS的WPF管理端)使用的资源字典存储翻译文件,其他方式还有资源文件、微软官方的国际化方案(未研究)等。下面是翻译文件截图: 三个资源文件使用需要注意: 选择一个默认文件(比如en.xaml,英文)作为默认语言文件,需要将生成操作属性设置为 "页", 设置截图如下: 其他语言文件设置生成操作属性为内容,设置截图如下: 需要将默认语言资源文件添加到App.xaml中,其他语言不用: <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries>

C#/.Net Core/WPF框架初建(国际化、主题色)

落花浮王杯 提交于 2020-04-18 11:40:05
C#/.Net Core/WPF框架初建(国际化、主题色) English | 简体中文 作为 TerminalMACS 的一个子进程模块 - WPF管理端,目前搭建框架部分功能:本地化、国际化、主题色修改等。 导航目录 框架已添加功能说明 1.1. 国际化、本地化 1.2. Metro风格主窗体 1.3. 动态更换主题色 关于TerminalMACS及本WPF管理端 关于项目开源 参考资料 1. 框架已添加功能说明 1.1. 国际化、本地化 源码放在Github上,希望分享给更多人,所以添加了国际化功能,默认支持中、英、日三国语言,按照已有套路扩展其他语言也方便,看下面的效果: 本项目(TerminalMACS的WPF管理端)使用的资源字典存储翻译文件,其他方式还有资源文件、微软官方的国际化方案(未研究)等。下面是翻译文件截图: 三个资源文件使用需要注意: 选择一个默认文件(比如en.xaml,英文)作为默认语言文件,需要将生成操作属性设置为 "页", 设置截图如下: 其他语言文件设置生成操作属性为内容,设置截图如下: 需要将默认语言资源文件添加到App.xaml中,其他语言不用: <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries>

.NET Core 3 WPF MVVM框架 Prism系列之导航系统

本小妞迷上赌 提交于 2020-04-17 16:41:42
原文: .NET Core 3 WPF MVVM框架 Prism系列之导航系统 本文将介绍如何在.NET Core3环境下使用MVVM框架Prism基于区域Region的导航系统 在讲解Prism导航系统之前,我们先来看看一个例子,我在之前的demo项目创建一个登录界面: 我们看到这里是不是一开始想象到使用WPF带有的导航系统,通过Frame和Page进行页面跳转,然后通过导航日志的GoBack和GoForward实现后退和前进,其实这是通过使用Prism的导航框架实现的,下面我们来看看如何在Prism的MVVM模式下实现该功能 一.区域导航 # 我们在上一篇介绍了Prism的区域管理,而Prism的导航系统也是基于区域的,首先我们来看看如何在区域导航 1.注册区域 # LoginWindow.xaml: Copy <Window x:Class="PrismMetroSample.Shell.Views.Login.LoginWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression

.NET Core 3 WPF MVVM框架 Prism系列之区域管理器

被刻印的时光 ゝ 提交于 2020-04-17 16:39:58
原文: .NET Core 3 WPF MVVM框架 Prism系列之区域管理器 本文将介绍如何在.NET Core3环境下使用MVVM框架Prism的使用区域管理器对于View的管理 一.区域管理器 # 我们在之前的Prism系列构建了一个标准式Prism项目,这篇文章将会讲解之前项目中用到的利用区域管理器更好的对我们的View进行管理,同样的我们来看看官方给出的模型图: 现在我们可以知道的是,大致一个区域管理器RegionMannager对一个控件创建区域的要点: 创建Region的控件必须包含一个RegionAdapter适配器 region是依赖在具有RegionAdapter控件身上的 其实后来我去看了下官方的介绍和源码,默认RegionAdapter是有三个,且还支持自定义RegionAdapter,因此在官方的模型图之间我做了点补充: 二.区域创建与视图的注入 # 我们先来看看我们之前项目的区域的划分,以及如何创建区域并且把View注入到区域中: 我们把整个主窗体划分了四个区域: ShowSearchPatientRegion :注入了ShowSearchPatient视图 PatientListRegion :注入了PatientList视图 FlyoutRegion :注入了PatientDetail和SearchMedicine视图

【笔记】《Bootstrap实战》——第2章 作品展示站点

旧街凉风 提交于 2020-04-15 17:25:31
【推荐阅读】微服务还能火多久?>>> 文章目录 一、搭建传送带(轮播图) 1.主要代码 2.使用说明 二、创建响应式分栏 1.网格系统引入 2.使用说明 三、链接转按钮 1.关键类说明 2.代码 四、理解LESS 1.[嵌套(Nesting)](https://less.bootcss.com/#-nesting-) 2.[变量(Variables)](https://less.bootcss.com/features/#variables-feature) 3.[混合(Mixins)](https://less.bootcss.com/features/#mixins-feature) 4.[运算(Operations)](https://less.bootcss.com/features/#mixins-feature) 5.[导入(Importing)](https://less.bootcss.com/features/#imports-feature) 五、定制LESS文件 1.准备工作 2.导入新变量 3.编辑导航条变量 六、添加Logo图片 1.加img 2.调整导航条内边距 七、调整导航项内边距 八、添加图标 1.使用BootStrap自带的Glyphicons 2.使用Font Awesome图标 九、调整导航项图标颜色 十、调整响应式导航条断点 十一、调整传送带

TQ2440(S3C2440)移植Linux-4.0.1内核全过程

夙愿已清 提交于 2020-04-15 17:10:37
【推荐阅读】微服务还能火多久?>>> TQ2440(S3C2440)移植Linux-4.0.1内核全过程 文件系统yaffs2下载地址: https://yaffs.net/get-yaffs linux内核下载地址: BusyBox下载地址: https://busybox.net/ 开发环境: ubuntu1404 天嵌光盘里的交叉编译器(版本4.4.3) busybox-1.13.0 (一)制作根文件系统 1、创建根文件系统目录 使用如下脚本: #!/bin/sh rm -rf yaffs2 echo "create yaffs2 dir..." mkdir yaffs2 cd yaffs2 mkdir root dev etc boot tmp var sys proc lib mnt home usr opt mkdir etc/init.d etc/rc.d etc/sysconfig mkdir usr/sbin usr/bin usr/lib usr/modules usr/local mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp mkdir var/lib var/lock var/run var/tmp echo "make node..." mknod -m 600 dev/console c 5 1

《Bootstrap实战》笔记系列目录及说明

岁酱吖の 提交于 2020-04-15 15:45:39
【推荐阅读】微服务还能火多久?>>> 为建立演示页面fork到了码云,地址: bootstrap site blueprints sample code ,在每个章节的笔记都有效果预览地址哦 《Bootstrap实战》 David Cochran , Ian Whitley (作者) 李松峰 (译者) 笔记目录: 【笔记】《Bootstrap实战》——第1章 初识Bootstrap 【笔记】《Bootstrap实战》——第2章 作品展示站点 【笔记】《Bootstrap实战》——第3章 WordPress主题【自】 【笔记】《Bootstrap实战》——第4章 企业网站 【笔记】《Bootstrap实战》——第5章 电子商务网站 【笔记】《Bootstrap实战》——第6章 单页营销网站 【笔记】《Bootstrap实战》——附录A 优化站点资源 【笔记】《Bootstrap实战》——附录B 实现响应式图片 【笔记】《Bootstrap实战》——附录C 让传送带支持手势 【笔记】《Bootstrap实战》系列笔记是在校期间学习所记录,较为杂乱。。。如有建议,欢迎提出 PS:由于wordpress版本与书上严重不一致,所以学习过程中出现了好多问题,部分问题可在图灵社图找到答案,遇到解决不了的问题或可在文章下面留言说明或者私信,我们一起解决它 ^_^

【笔记】玩转CSS3新特性_from_JSPang

时光毁灭记忆、已成空白 提交于 2020-04-15 11:48:40
【推荐阅读】微服务还能火多久?>>> 文章目录 第一章:环境搭建,伪类选择器,伪元素 1.1、嫁汉嫁汉穿衣吃饭 1.2、新特性简介和浏览器支持情况 1.新特性简介 2.浏览器对CSS3的支持情况 3.渐进增强和优雅降级 1.3、伪类选择器(1) 1.动态伪类选择器 2.UI元素状态伪类选择器 1.4、伪类选择器(2) 1.结构伪类选择器 1.5、伪元素案例精讲 第二章:CSS3的变形,画多边形,星形 2.1、CSS3用border-radius画图形 2.2、画三角形和对话效果 2.3、画菱形和平行四边形 2.4、CSS3画五角星和六角星 2.5、CSS3画五边形和六角形 2.6、CSS3画心形和蛋形 2.7、CSS3画太极阴阳图 第三章:CSS3的颜色,透明属性,颜色模式,渐变 3.1、css3制作透明背景层 3.2、css3的颜色模式(1) rgba hsla 3.3、css3的颜色模式(2) 3.4、css3线性渐变 3.5、css3径向渐变 radial-gradient 3.6、css3重复性渐变 3.7、CSS3盒子阴影效果box-shadow 第四章:CSS3的过度属性,简单的过渡动画 4.1、CSS3制作缓慢变长的方向(transition特效) 4.2、CSS3过渡的timing-function属性详解 4.3、CSS3仿天猫专题过渡效果实例 4.4

区块链学习之3Windows平台下以太坊私有链搭建及钱包部署和运行

橙三吉。 提交于 2020-04-15 10:55:21
【推荐阅读】微服务还能火多久?>>> 在Windows下的安装,是按着老师下发的安装教程做的。由于前面有在Ubuntu搭建的经验,所以感觉步骤大致相同,而且感觉Windows的简单一些。 一、理论知识 1.区块链中私钥、公钥和比特币地址三者的关系 1.用户首先会得到一个私钥,私钥是由程序调用操作系统自带的一个算法模块,在本地自动的生成的。 2.然后钱包这个应用会将这个私钥通过椭圆曲线算法这个矩阵相乘,得到用户的公钥。因为是与矩阵相乘,所以公钥也是矩阵,横向和纵向都是32位。 3.因为公钥十分复杂、不方便使用,所以又通过哈希函数得到了一个比特币地址(也叫钱包地址)。 2.比特币地址与传统账号的区别 1.相同点: 都是进行交易的一个支付转账的“凭证”。 2.不同点: (1)比特币地址是由区块链网络自发生成,而传统账号地址是由第三方机构生成。 (2)通过比特币地址查询到的是所有的转账记录,而传统账号查询到的是余额。 3.为什么一开始只是转账提交成功,需要矿工挖到新的区块才能算交易成功? 网上找了找相关的文章,我觉得下面这篇理解起来好懂一点: https://www.zxbcc.com/ad/478 上面那篇文章讲的是原理,然后用我的话总结一下结论: 我们可以把 [挖矿行为] 理解为 [争夺记账权] ,所以 [挖到矿] 就可以理解为 [记了一笔账] 。 所以当我们想要转账的时候