很久没有写博客了。

这是放暑假中的第一篇博客,以后会多多更新!!!

这就是我写的一个字体选择器,界面如下:

本程序用到的技术比较简单,仅仅是用了Font类的几个方法和数据绑定而已。

首先建一个四行两列的Grid,添加一个ComboBox,命名为fonts。然后在添加若干个TextBlock和一个TextBox(用于显示字体名称),如上图所示。

以下是完整的xaml:

<Window x:Class="WpfApplication7.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="字体选择器" Height="350" Width="594" Loaded="MainWindow_Loaded_1"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="2*"></RowDefinition> <RowDefinition Height="2*"></RowDefinition> <RowDefinition Height="2*"></RowDefinition> <RowDefinition Height="4*"></RowDefinition> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> </Grid.ColumnDefinitions> <ComboBox HorizontalAlignment="Center" MinWidth="200" Name="fonts" SelectionChanged="fonts_SelectionChanged" Grid.ColumnSpan="2" MinHeight="30" Margin="20"></ComboBox> <TextBlock Grid.Row="1">中文预览:</TextBlock> <TextBlock Grid.Row="2" Name="text" FontSize="30">你选择的字体</TextBlock> <TextBlock Grid.Row="1" Grid.Column="2">英文预览:</TextBlock> <TextBlock Grid.Row="2" Grid.Column="2" FontSize="30" FontFamily="{Binding Path=FontFamily,ElementName=text}">You Selected Font</TextBlock> <Border Grid.ColumnSpan="2" Grid.Row="3">        <DockPanel> <TextBlock DockPanel.Dock="Top">字体详细信息:</TextBlock>       <StackPanel> <StackPanel Orientation="Horizontal"> <TextBlock>字体名称:</TextBlock> <TextBox Text="{Binding ElementName=text,Path=FontFamily}" Name="fontname"></TextBox> </StackPanel> </StackPanel> <Button HorizontalAlignment="Center" VerticalAlignment="Bottom" DockPanel.Dock="Bottom" Click="Button_Click_1"> <Button.Style> <Style> <Style.Triggers> <Trigger Property="Button.IsMouseOver" Value="True"> <Setter Property="Button.Foreground" Value="Blue"></Setter> </Trigger> <Trigger Property="Button.IsMouseOver" Value="False"> <Setter Property="Button.Foreground" Value="Black"></Setter> </Trigger> </Style.Triggers> </Style> </Button.Style> <Button.Template> <ControlTemplate> <TextBlock > <Underline>关注我的新浪微博</Underline> </TextBlock>   </ControlTemplate> </Button.Template> </Button>    </DockPanel> </Border> </Grid>
</Window>

其中用了元素绑定,如  FontFamily="{Binding Path=FontFamily,ElementName=text}">,ElementName代表要绑定的元素名称(Name属性),Path代表要绑定的属性名称。

这里我们用Fonts.SystemFontFamilies集合获取系统内安装的字体,然后使用foreach循环添加字体到名称到ComboBox的Items集合中。

窗口load事件代码:

foreach (FontFamily font in Fonts.SystemFontFamilies){fonts.Items.Add(font.Source);
/* 何问起 hovertree.com */
}

运行一下,会发现ComboBox中显示出所有字体的名称,但美中不足的是不能在列表中显示出字体的字形,我们可以用自定义控件解决。

建一个WPF控件(取名Items),里面放一个TextBlock控件,命名为text,然后在构造函数中键入以下代码:

public Items(FontFamily font) 

    InitializeComponent(); 
    text.FontFamily = font; 
    text.Text= font.Source; 
   
}

其中增加了一个参数用以接受FontFamily对象,设置TextBlock的内容和FontFamily为传递来的参数。

代码如下:

foreach (FontFamily font in Fonts.SystemFontFamilies)  //遍历字体集合中德字体
{ /* 何问起 hovertree.com */fonts.Items.Add(new Items(font));//将参数传递到自定义控件
}

这样就OK了。

推荐:http://www.cnblogs.com/roucheng/category/827769.html

一个简单的WPF字体选择器实现相关推荐

  1. 一个简单的 Vue 头像选择器

    Preface 项目中需要一个头像选择器,但经过调研,市面上的头像选择器(或者图片截取器)一方面风格固定,无法所用组件库风格融合,另一方面,为了做到尽善尽美,大家为选择器预设了许许多多的属性,这对于选 ...

  2. 一个简单的c4d字体(体现光影关系)制作案例

    文本 --统一 挤压--细分增加     圆角封顶 --四边面-- 标准网格  增加网格 C掉 减面+噪波(+细分曲面)

  3. WPF实现一个简单的多运算符表达式计算器

    标题:WPF实现一个简单的多运算符表达式计算器 1.先看下效果图 首先外围给了一个grid 把他分成了两行 第一行用来显示文本框给了一个低于第二行的高度 第二行用来存按钮 窗体的大小自己去调就好了 我 ...

  4. html特效 wpf,利用WPF实现一个简单的文字粒子闪烁动画特效

    利用WPF实现一个简单的文字粒子闪烁动画特效 发布时间:2020-11-06 16:04:19 来源:亿速云 阅读:124 作者:Leah 本篇文章给大家分享的是有关利用WPF实现一个简单的文字粒子闪 ...

  5. 为WPF, UWP 及 Xamarin实现一个简单的消息组件

    友情提示:阅读本文大概需要8分钟. 欢迎大家点击上方公众号链接关注我,了解新西兰码农生活 本文目录: 1. 介绍 2. Message - 消息 3. Subscription - 订阅 4. Mes ...

  6. 在VS中手工创建一个最简单的WPF程序

    如果不用VS的WPF项目模板,如何手工创建一个WPF程序呢?我们来模仿WPF模板,创建一个最简单的WPF程序. 第一步:文件--新建--项目--空项目,创建一个空项目. 第二步:添加引用,Presen ...

  7. 创建一个简单的应用程序窗口,显示“欲穷千里目 更上一层楼”。这一行文字从窗口中向左滚动显示,而且每显示一轮,改变一次颜色,改变一次字体,一个周期为4种颜色,分别为红、绿、黄、蓝,四种字体分别为宋体、楷

    创建一个简单的应用程序窗口,显示"欲穷千里目 更上一层楼".这一行文字从窗口中向左滚动显示,而且每显示一轮,改变一次颜色,改变一次字体,一个周期为4种颜色,分别为红.绿.黄.蓝,四 ...

  8. 使用Dreamweaver/利用HTML5/CSS/制作一个简单的文字logo

    一.制作一个简单的logo 1. 结构与样式分析 首先我们根据logo的图片分析logo的效果,该logo由6个字母组成.在使用"数码测色计"测出logo的颜色,这里我们测出log ...

  9. 制作一个简单的linux

    我这里是借助宿主机做的一个简单的Linux,我们只要知道一个Linux启动过程需要什么,这里制作就简单的多了.不过没有基础的也没关系,我写的很详细,没有基础的看了我写的步骤只要细心也是会做出来的,我这 ...

最新文章

  1. 自习室网上预约系统设计_港澳居民“回乡证”出新规啦!新系统网上预约更方便!...
  2. dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Gold;第一次无效
  3. 信息学奥赛一本通(C++)在线评测系统——基础(三)数据结构 —— 1363:小球(drop)
  4. 今天学习Flex3.2嵌入图片,值得说道的是如何嵌入scale-9 缩放的图像
  5. 最近学到的「短链接」知识
  6. java年月日时分秒格式_Java 日期时间 LocalDate LocalTime LocalDateTime类
  7. uestc oj 1218 Pick The Sticks (01背包变形)
  8. java arraylist_Java 集合框架之 ArrayList 源码图示法简要剖析
  9. 梦幻西游默认服务器怎么修改器,梦幻西游古龙服务端安装教程
  10. xshell大神级配色-夜间最配
  11. Visual Studio(VS) 2019版本下载官方地址
  12. 计算机四级考448分算低吗,英语4级成绩,四级300多成绩单有用吗。
  13. ubuntu升级22.04无法启动--ACPI BIOS Error
  14. Matlab中的c2d函数用法
  15. yyyy-MM-dd HH:mm:ss时间格式化,有的大写有的小写,大小写的含义说明
  16. python 霍夫直线变换_霍夫线变换
  17. iOS15绕过激活锁,屏幕锁界面完美隐藏工具TiggerRamDisk3.7,支持最新iOS15.5系统
  18. 【Verilog】【Vivado】计数器示例
  19. 忽悠自由主义_所有教育工作者都应该知道的16种自由主义
  20. 关掉Windows10的计划自动重启行之有效的方法

热门文章

  1. python3的格式化用法_浅析python3字符串格式化format()函数的简单用法
  2. 智能型炉温测试仪kic x5软件,X5系列_KIC-7通道/9通道/12通道炉温测试仪
  3. C语言程序设计打鱼还是晒网,C语言编程三天打鱼两天晒网
  4. linux c 修改用户组,Linux C Function()参照之用户组篇
  5. 编辑bpmn_最好用的流程编辑器bpmnjs系列之ContextPad
  6. 【BZOJ2005】【codevs1937】能量采集,数论练习之二维公约数求和
  7. closewin关闭无法返回上一层_紧急关闭iOS13,有史以来跳版本关闭系统
  8. 2017.3.19 约数个数和 失败总结
  9. 【Openstack】实录手动部署Openstack Rocky 双节点(4)- Nova
  10. 【英语学习】【WOTD】emote 释义/词源/示例