CS开发框架自动缩放字体功能
CS开发框架自动缩放字体功能
设计方案: 1. 设计一个支持字体缩放功能的接口IZoomFont C# Code:
/// <summary> /// 支持缩放字段的功能 /// </summary> public interface IZoomFont { /// <summary> /// 设置控件的字体大小 /// </summary> /// <param name="fontSize">字体大小</param> /// <param name="processChilds">是否处理子级</param> void DoSetFont(float fontSize, bool processChilds); /// <summary> /// 设置窗体内某些特殊控件的字体, Dev很多控件的字体必须在Appearance属性内设置 /// </summary> /// <param name="font">缩放后的字体</param> void DoSetFontCustom(Font font); /// <summary> /// 此控件是否支持缩放功能 /// </summary> /// <param name="control">当前控件</param> /// <returns></returns> bool AllowZoomFont(Control control); } //来源:C/S框架网(www.csframework.com) QQ:1980854898
C# Code:
/// <summary> /// 所有窗体基类 /// </summary> public partial class frmBase : XtraForm, IFormBase, IZoomFont { /// <summary> /// 标记当前窗体是否支持字体缩放, 正常情况下所有窗体都允许缩放. /// </summary> protected bool _EnableZoomFont = true; /// <summary> /// 按回车键自动将焦点移到下一输入框 /// </summary> protected bool _EnterFocusNextControl = true; // ... 省略 .... } //来源:C/S框架网(www.csframework.com) QQ:1980854898
C# Code:
#region IZoomFont接口的方法 /// <summary> /// 设置当前窗体所有控件的字段 /// </summary> /// <param name="fontSize">新字体</param> /// <param name="processChilds">处理所有子控件</param> public void DoSetFont(float fontSize, bool processChilds) { try { this.SuspendLayout(); Font newFont = new Font(this.Font.FontFamily.Name, fontSize); ZoomFontTool.SetControlFont(this, newFont, processChilds); //设置当前窗体的字体 this.DoSetFontCustom(newFont); //设置其它控件的字体 } finally { this.ResumeLayout(); } } /// <summary> /// 是否能缩放当前控件的字体大小 /// </summary> /// <param name="c">当前控件</param> /// <returns></returns> public virtual bool AllowZoomFont(Control c) { return true; } /// <summary> /// 设置窗体内某些特殊控件的字体, Dev很多控件的字体必须在Appearance属性内设置 /// </summary> /// <param name="font">缩放后的字体</param> public virtual void DoSetFontCustom(Font font) { } #endregion //来源:C/S框架网(www.csframework.com) QQ:1980854898
C# Code:
//处理用户按键事件 private void frmBase_KeyDown(object sender, KeyEventArgs e) { //按Control键及+/-键调整字体大小 if (e.Control && ((e.KeyCode == Keys.Add) || (e.KeyCode == Keys.Subtract))) { //当前窗体不允许缩放字体 if (false == _EnableZoomFont) return; try { if (this.MdiParent != null) this.MdiParent.SuspendLayout(); Cursor.Current = Cursors.WaitCursor; frmWaiting.ShowMe("正在缩放字体,请稍候......"); Application.DoEvents(); Thread.Sleep(50); ZoomFontTool.ZoomAll((e.KeyCode == Keys.Add) ? ZoomType.ZoomIn : ZoomType.ZoomOut); } finally { this.Focus(); Cursor.Current = Cursors.Default; e.Handled = true; frmWaiting.HideMe(); if (this.MdiParent != null) this.MdiParent.ResumeLayout(); Application.DoEvents(); } } } //来源:C/S框架网(www.csframework.com) QQ:1980854898 扫一扫加微信 下载ZoomFontTool类及frmWaiting窗体源码:
参考文档:
CS开发框架版本介绍(www.csframework.com) C#.Net CS开发框架实现多语言(C/S框架网) CS开发框架的客户端可以自动生成吗? 有没有CS开发框架的QQ群? CS开发框架 - 业务单据自动生成功能设计(原) CS开发框架核心模型 - 共享主窗体的工具栏(Toolbar) CS开发框架核心模型 - 支持多帐套功能 CS开发框架如何实现快速开发? CS开发框架动态加载模块技术 CS开发框架新增两个报表模块 (源码下载) CS开发框架旗舰版主从从表(多级明细表)实例,自动生成主从表代码 CS开发框架如何做到源代码的保密和不被第三方窃取呢? CS开发框架之自增字段(Identity),时间戳(Timestamp)字段处理|C/S框架网 CS开发框架修改主窗体XtraTabbedMdiManager组件的子窗体标签的字体大小 CS开发框架获取生成流水号码(单据号码)介绍
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |