博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
项目上的阶段小结(二)
阅读量:5097 次
发布时间:2019-06-13

本文共 3715 字,大约阅读时间需要 12 分钟。

 

上次说到了用wpf做表格,其实工作实际上却转移到字体上。

1、字体,在选择字体的时候,搞了一些想法。但是wpf字体的下滑选项上是没有中文名称的,就是说,像word那样选择字体在wpf中无法实现。也很奇怪的是,刚开始接触wpf,不知道它的FontFamily的参数有哪些,也不知道适合的字体有哪些。

    刚开始默认的黑体还是比较丑陋的,所以要选择字体,获得有三: 

1)现阶段最流行的中文字体是,微软雅黑。行间距1.5 ,字体大小17px附近。(记忆模糊了 待考)

2)楷体作为正文其实是最好的,但是楷体的英文显示很差。

3)要是用英文字体就选择,arial。

下面就是找了半天的东西,对我来说这个比较有用,虽然最终只用 FontFamily = "微软雅黑"

常见中文字体与FontFamily映射表

宋体(英文不等宽)

Simsun

宋体(英文等宽)

NSimsun

楷体

KaiTi

黑体

SimHei

仿宋

FangSong

微软正黑体

Microsoft JhengHei

细明体

MingLiu

微软雅黑

Microsoft YaHei

隶书

LiSu(只能打包,不支持本地系统引用)

华文彩云

STCaiyun(只能打包,不支持本地系统引用)

华文琥珀

STHupo(只能打包,不支持本地系统引用)

华文隶书

STLiti(只能打包,不支持本地系统引用)

华文新魏

STXinwei(只能打包,不支持本地系统引用)

华文行楷

STXingkai(只能打包,不支持本地系统引用)

幼圆

YouYuan(只能打包,不支持本地系统引用)

剩下的就是选择字体的样式了:在网上找了一些格式,与其说是格式,不如说是。。。word实现的艺术字。

2、花样字体

剩下的就是具体实现了。

1)

具体测试文本

2) 

具体测试文本

3) 来源 : 如何建立阴影文字

虽然即使是这样可以,但是往往需要的是加入到资源字典里,这个就是有一个style 的问题了,感谢@,他的回答让我明白了。

 

 4)内阴影镂空字效果,让我很费解,我不知道这个内阴影能否在wpf实现,只是我觉得,这可以在一个背景色和字体色反差明显的,实现这个效果,个人觉得比较山寨。

 

具体测试文本

 

但是觉得这样挺山寨的。

5)6)7)其实跟4)一样的

8)就复杂一些 也是靠 @WuRang 的解决方法,有用了blend来搞了个渐变笔刷

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;using System.Globalization;namespace ziti{    ///     /// MainWindow.xaml 的交互逻辑    ///     public partial class MainWindow : Window    {        public MainWindow()        {            InitializeComponent();            CreateText();        }        public void CreateText()        {            System.Windows.FontStyle fontStyle = FontStyles.Normal;            FontWeight fontWeight = FontWeights.Medium;            //if (Bold == true) fontWeight = FontWeights.Bold;            //if (Italic == true) fontStyle = FontStyles.Italic;            // Create the formatted text based on the properties set.            FormattedText formattedText = new FormattedText(                "测试文本",                CultureInfo.GetCultureInfo("en-us"),                FlowDirection.LeftToRight,                new Typeface(                    new FontFamily("Lisu"),                    fontStyle,                    fontWeight,                    FontStretches.Normal),                48,                System.Windows.Media.Brushes.Black // This brush does not matter since we use the geometry of the text.                 );            // Build the geometry object that represents the text.            Geometry _textGeometry = formattedText.BuildGeometry(new System.Windows.Point(0, 0));            // Build the geometry object that represents the text hightlight.            //if (Highlight == true)            //{            //    _textHighLightGeometry = formattedText.BuildHighlightGeometry(new System.Windows.Point(0, 0));            //}            myGeo.AddGeometry(_textGeometry);            Geometry _textHighLightGeometry = formattedText.BuildHighlightGeometry(new System.Windows.Point(0, 0));           // myGeo.AddGeometry(_textHighLightGeometry);        }    }}

 

 

 

 9) 10) 11) 12)这些都跟8)类似

剩下的的4个用不到,也就没有实现,估计,用8)这种方法是可以实现的,但是8)这种我也不是很懂,所以

就先这样了。

 

 

 

 

转载于:https://www.cnblogs.com/young-ma/p/3167353.html

你可能感兴趣的文章
jQuery源码分析(2) - 为什么不用new jQuery而是用$()
查看>>
[转]【EL表达式】11个内置对象(用的少) & EL执行表达式
查看>>
ArrayList对象声明& arrayList.size()
查看>>
并发编程 线程
查看>>
Mysql 解压安装
查看>>
Mysql
查看>>
前端html
查看>>
网络编程
查看>>
关于“设计模式”和“设计程序语言”的一些闲话
查看>>
(一二九)获取文件的MineType、利用SSZipArchive进行压缩解压
查看>>
python学习4 常用内置模块
查看>>
Window7上搭建symfony开发环境(PEAR)
查看>>
ResolveUrl的用法
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
华为离职副总裁徐家骏:年薪千万的工作感悟
查看>>
java SE :标准输入/输出
查看>>
sublimie 知乎
查看>>
一些方便系统诊断的bash函数
查看>>
Floyd算法 - 最短路径
查看>>