2011-11-23 16:09:25 jojojojo2002 阅读数 10479
  • C#急速入门

    Unity开发,C#绝对是基础中的基础,课程针对纯小白而设计,各种语言细节在课程里均有涉猎,从原理到实战,从底层到算法,你想了解的C#,这里应有尽有,除了讲解,还有练习,你说棒不棒,哈哈,当然如果你是有其他语言基础的同学,课程依然会让你收货满满。来吧,我们进入正题。

    14003 人正在学习 去看看 张建飞
 

Font样式只有在创建的时候才能设定,将样式存储到数据库中后,想要还原Label的Font就有点麻烦了,
model 为实体类的一个实例,里面包含了
fontFamily  字符串
fontSize decimal
italic 是否斜体,boolean值
bold 是否粗体,boolean值
strikeout 是否有删除线,boolean值
Underline 是否有下划线,boolean值


首先构造一个所有样式都有的Font
                        Font font = new Font(new FontFamily(model.fontFamily),
                                                float.Parse(model.fontSize.ToString()),
                                                FontStyle.Bold | FontStyle.Italic | FontStyle.Strikeout | FontStyle.Underline);
                        if (!model.italic)//没有斜体
                        {//删除字体中的斜体样式
                            font = new Font(font, font.Style & ~FontStyle.Italic);
                        }
                        if (!model.bold)//没有粗体
                        {//删除字体中的粗体
                            font = new Font(font, font.Style & ~FontStyle.Bold);
                        }
                        if (!model.strikeout)//没有删除线
                        {//删除字体中的删除线
                            font = new Font(font, font.Style & ~FontStyle.Strikeout);
                        }
                        if (!model.underline)//没有下划线
                        {//删除字体中的下划线
                            font = new Font(font, font.Style & ~FontStyle.Underline);
                        }
                        //这样就得到原来保存的字体样式了,有点麻烦……
                        lbl.Font = font;
说明:
&是二进制按位与运算符;
~是二进制按位取反运算符。
FontStyle就是一个二进制数。假设第一位是斜体,即000001为斜体,第二位是粗体,即000010为粗体,000011又粗又斜。
首先对表示粗体的000010取反,就成了111101,然后再与某个Style进行按位与,按位与的特点就是如果前后两个二进制数的某一位都为1,结果才为1,很显然可以看出来,任何数与111101进行按位与的话,结果就是把第二位置0,这样就达到了取消黑体的效果。

2018-06-07 17:24:29 zhaoyuqings 阅读数 1192
  • C#急速入门

    Unity开发,C#绝对是基础中的基础,课程针对纯小白而设计,各种语言细节在课程里均有涉猎,从原理到实战,从底层到算法,你想了解的C#,这里应有尽有,除了讲解,还有练习,你说棒不棒,哈哈,当然如果你是有其他语言基础的同学,课程依然会让你收货满满。来吧,我们进入正题。

    14003 人正在学习 去看看 张建飞
                Font t = fontDialog.Font;
                FontConverter x = new FontConverter();
                string s = x.ConvertToString(t);
                t = x.ConvertFromString(s) as Font;

利用FontConverter类即可实现相互转换

2014-09-26 10:25:52 CNHK1225 阅读数 10620
  • C#急速入门

    Unity开发,C#绝对是基础中的基础,课程针对纯小白而设计,各种语言细节在课程里均有涉猎,从原理到实战,从底层到算法,你想了解的C#,这里应有尽有,除了讲解,还有练习,你说棒不棒,哈哈,当然如果你是有其他语言基础的同学,课程依然会让你收货满满。来吧,我们进入正题。

    14003 人正在学习 去看看 张建飞

以设置粗体为例 


private void btnBold_Click(object sender, EventArgs e)
        {
            Font oldFont;
            Font newFont;

            oldFont = this.rtftext.SelectionFont;
            if (oldFont.Bold)
            {
                newFont = new Font(oldFont, oldFont.Style &~FontStyle.Bold);
            }
            else
                newFont = new Font(oldFont,oldFont.Style|FontStyle.Bold);
            this.rtftext.SelectionFont = newFont;
            this.rtftext.Focus();
        }

2010-02-08 11:28:00 gisoracle 阅读数 2101
  • C#急速入门

    Unity开发,C#绝对是基础中的基础,课程针对纯小白而设计,各种语言细节在课程里均有涉猎,从原理到实战,从底层到算法,你想了解的C#,这里应有尽有,除了讲解,还有练习,你说棒不棒,哈哈,当然如果你是有其他语言基础的同学,课程依然会让你收货满满。来吧,我们进入正题。

    14003 人正在学习 去看看 张建飞

public static IFontDisp getFontDisp(System.Drawing.Font myFont)
        {

            return ESRI.ArcGIS.Utility.COMSupport.OLE.GetIFontDispFromFont(myFont) as IFontDisp;
        }

2015-09-28 02:46:19 ou832339 阅读数 8582
  • C#急速入门

    Unity开发,C#绝对是基础中的基础,课程针对纯小白而设计,各种语言细节在课程里均有涉猎,从原理到实战,从底层到算法,你想了解的C#,这里应有尽有,除了讲解,还有练习,你说棒不棒,哈哈,当然如果你是有其他语言基础的同学,课程依然会让你收货满满。来吧,我们进入正题。

    14003 人正在学习 去看看 张建飞

基于 [博客园-《叩响C#之门》-关于RichTextBox修改字体大小的研究]  

感谢作者:李雨来  感谢 寒飞雨 的分享。

看了《关于RichTextBox修改字体大小的研究》一文后,根据文中的参考小小的拓展了下功能,

把功能弄成改变字体大小,粗体斜体下划删除线,字符上色
选中的字符同时具备 粗体斜体下划删除线就要用到 FontStyle。

有两种方式:
FontStyle style = FontStyle.Bold;
style |= FontStyle.Underline;
style |= FontStyle.Italic;
style |= FontStyle.Strikeout;


FontStyle style = (FontStyle)(FontStyle.Bold |FontStyle.Italic |FontStyle.Underline | FontStyle.Strikeout);

    public static class SetFontSytyle
    {
        #region =★=*=*=★= 设置选中字体样式 =★=*=*=★=

        //1.粗体 2.斜体 3.下划线 4.删除线
        //5.粗体+斜体 6.粗体+下划线 7.粗体+删除线 8.斜体+下划线 9.斜体+删除线 10.下划线+删除线
        //11.斜体+下划线+删除线 12.粗体+下划线+删除线 13.粗体+斜体+删除线 14.粗体+斜体+下划线
        //15.粗、斜、下、删


        /// <summary> 设置选中字体样式(1) <para> </para>
        /// 此方法有五种形式:<para> </para>
        /// 1.)只改变字体大小 <para></para>2.)在1的基本上,粗、斜体、下划线、删除线样式 
        /// <para></para>3.)在2的基本上,高亮模式(字体上色)<para> </para>
        /// 4.)可同时设置〖FontStyle〗多样化 <para></para>5.)在4的基本上设置字体颜色<para> </para></summary>
        /// <param name="rich">RichTextBox 控件</param>
        /// <param name="fontsize">设置选中字体大小,设置时应为(0.5)的倍数。</param>
        public static void changeFontSize(RichTextBox rich, float fontsize)
        {
            int selStart = rich.SelectionStart;
            int selLen = rich.SelectionLength;
            int selEnd = selStart + selLen;

            changeHelp(rich, selStart, selEnd, fontsize);

            rich.Select(selStart, selLen);
        }

        /// <summary> 设置选中字体样式(2) <para> </para>
        /// 此方法有五种形式:<para> </para>
        /// 1.)只改变字体大小 <para></para>2.)在1的基本上,粗、斜体、下划线、删除线样式 
        /// <para></para>3.)在2的基本上,高亮模式(字体上色)<para> </para>
        /// 4.)可同时设置〖FontStyle〗多样化 <para></para>5.)在4的基本上设置字体颜色 </summary>
        /// <param name="rich">RichTextBox 控件</param>
        /// <param name="fontsize">设置选中字体大小,设置时应为(0.5)的倍数。</param>
        /// <param name="style">字体样式:普通,粗体,斜体,删除线,下划线 样式</param>
        public static void changeFontSize(RichTextBox rich, float fontsize, FontStyle style)
        {
            int selStart = rich.SelectionStart;
            int selLen = rich.SelectionLength;
            int selEnd = selStart + selLen;

            changeHelp(rich, selStart, selEnd, fontsize, style);

            rich.Select(selStart, selLen);
        }

        /// <summary> 设置选中字体样式(3) <para> </para>
        /// 此方法有五种形式:<para> </para>
        /// 1.)只改变字体大小 <para></para>2.)在1的基本上,粗、斜体、下划线、删除线样式 
        /// <para></para>3.)在2的基本上,高亮模式(字体上色)<para> </para>
        /// 4.)可同时设置〖FontStyle〗多样化 <para></para>5.)在4的基本上设置字体颜色 </summary>
        /// <param name="rich">RichTextBox 控件</param>
        /// <param name="fontsize">设置选中字体大小,设置时应为(0.5)的倍数。</param>
        /// <param name="style">字体样式:普通,粗体,斜体,删除线,下划线 样式</param>
        /// <param name="color">设置选中字体颜色</param>
        public static void changeFontSize(RichTextBox rich, float fontsize, FontStyle style, Color color)
        {
            int selStart = rich.SelectionStart;
            int selLen = rich.SelectionLength;
            int selEnd = selStart + selLen;

            changeHelp(rich, selStart, selEnd, fontsize, style, color);

            rich.Select(selStart, selLen);
        }

        /// <summary> 设置选中字体样式(4) <para> </para>
        /// 此方法有五种形式:<para></para>
        /// 1.)只改变字体大小 <para></para>2.)在1的基本上,粗、斜体、下划线、删除线样式 
        /// <para></para>3.)在2的基本上,高亮模式(字体上色)<para></para>
        /// 4.)可同时设置〖FontStyle〗多样化 <para></para>5.)在4的基本上设置字体颜色 </summary>
        /// <param name="rich">RichTextBox 控件</param>
        /// <param name="fontsize">设置选中字体大小,设置时应为(0.5)的倍数。</param>
        /// <param name="cont">Int值 十六种字体样式 以下数字代表:<para></para>
        /// 1.粗体 2.斜体 3.下划线 4.删除线 <para></para>
        /// 5.粗体+斜体 6.粗体+下划线 7.粗体+删除线 8.斜体+下划线 9.斜体+删除线 10.下划线+删除线<para></para>
        /// 11.斜体+下划线+删除线 12.粗体+下划线+删除线 13.粗体+斜体+删除线 14.粗体+斜体+下划线<para></para>
        /// 15.粗、斜、下、删</param>
        public static void changeFontSize(RichTextBox rich, float fontsize, int cont)
        {
            int selStart = rich.SelectionStart;
            int selLen = rich.SelectionLength;
            int selEnd = selStart + selLen;

            changeHelp(rich, selStart, selEnd, fontsize, FontStyleBius(cont));

            rich.Select(selStart, selLen);
        }

        /// <summary> 设置选中字体样式(5) <para> </para>
        /// 此方法有五种形式:<para></para>
        /// 1.)只改变字体大小 <para></para>2.)在1的基本上,粗、斜体、下划线、删除线样式 
        /// <para></para>3.)在2的基本上,高亮模式(字体上色)<para></para>
        /// 4.)可同时设置〖FontStyle〗多样化 <para></para>5.)在4的基本上设置字体颜色 </summary>
        /// <param name="rich">RichTextBox 控件</param>
        /// <param name="fontsize">设置选中字体大小,设置时应为(0.5)的倍数。</param>
        /// <param name="cont">Int值 十六种字体样式 以下数字代表:<para></para>
        /// 1.粗体 2.斜体 3.下划线 4.删除线 <para></para>
        /// 5.粗体+斜体 6.粗体+下划线 7.粗体+删除线 8.斜体+下划线 9.斜体+删除线 10.下划线+删除线<para></para>
        /// 11.斜体+下划线+删除线 12.粗体+下划线+删除线 13.粗体+斜体+删除线 14.粗体+斜体+下划线<para></para>
        /// 15.粗、斜、下、删</param>
        /// <param name="color">设置选中字体颜色</param>
        public static void changeFontSize(RichTextBox rich, float fontsize, int cont, Color color)
        {
            int selStart = rich.SelectionStart;
            int selLen = rich.SelectionLength;
            int selEnd = selStart + selLen;

            changeHelp(rich, selStart, selEnd, fontsize, FontStyleBius(cont), color);

            rich.Select(selStart, selLen);
        }
        #endregion



        #region =★=*=*=★= 设置字体样式〖调用方法〗 =★=*=*=★=
        /// <summary> 设置字体样式(一)
        /// <para></para> </summary>
        /// <param name="rich">RichTextBox 控件</param>
        /// <param name="start">选中文本位置,从(0)开始计算</param>
        /// <param name="end">选中文本长度</param>
        /// <param name="fontsize">设置选中字体大小</param>
        private static void changeHelp(RichTextBox rich, int start, int length, float fontsize)
        {
            rich.Select(start, length - start);

            if (rich.SelectionFont != null)
            {
                Font oldFont = rich.SelectionFont;

                rich.SelectionFont = new Font(oldFont.Name, fontsize);
            }
            else
            {
                int mid = (start + length) / 2;

                changeHelp(rich, start, mid, fontsize);
                changeHelp(rich, mid, length, fontsize);
            }
        }

        /// <summary> 设置字体样式(二)
        /// <para></para> </summary>
        /// <param name="rich">RichTextBox 控件</param>
        /// <param name="start">选中文本位置,从(0)开始计算</param>
        /// <param name="end">选中文本长度</param>
        /// <param name="fontsize">设置选中字体大小</param>
        /// <param name="style">字体样式:普通,粗体,斜体,删除线,下划线 样式</param>
        private static void changeHelp(RichTextBox rich, int start, int length, float fontsize, FontStyle style)
        {
            rich.Select(start, length - start);

            if (rich.SelectionFont != null)
            {
                Font oldFont = rich.SelectionFont;

                rich.SelectionFont = new Font(oldFont.Name, fontsize, style);
            }
            else
            {
                int mid = (start + length) / 2;

                changeHelp(rich, start, mid, fontsize, style);
                changeHelp(rich, mid, length, fontsize, style);
            }
        }

        /// <summary> 设置字体样式(三)
        /// <para></para> </summary>
        /// <param name="rich">RichTextBox 控件</param>
        /// <param name="start">选中文本位置,从(0)开始计算</param>
        /// <param name="end">选中文本长度</param>
        /// <param name="fontsize">设置选中字体大小</param>
        /// <param name="style">字体样式:普通,粗体,斜体,删除线,下划线 样式</param>
        /// <param name="color">设置字体颜色</param>
        private static void changeHelp(RichTextBox rich, int start, int length, float fontsize, FontStyle style, Color color)
        {
            rich.Select(start, length - start);

            if (rich.SelectionFont != null)
            {
                Font oldFont = rich.SelectionFont;

                rich.SelectionFont = new Font(oldFont.Name, fontsize, style);
                rich.SelectionColor = color;
            }
            else
            {
                int mid = (start + length) / 2;

                changeHelp(rich, start, mid, fontsize, style, color);
                changeHelp(rich, mid, length, fontsize, style, color);
            }
        }

        /// <summary> FontStyle 多样化 </summary>
        /// <param name="i"></param>
        /// <returns></returns>
        private static FontStyle FontStyleBius(int i)
        {
            FontStyle style;
            switch (i)
            {
                case 1:
                    style = FontStyle.Bold;
                    return style;
                case 2:
                    style = FontStyle.Italic;
                    return style;
                case 3:
                    style = FontStyle.Underline;
                    return style;
                case 4:
                    style = FontStyle.Strikeout;
                    return style;
                case 5:
                    style = (FontStyle)(FontStyle.Bold | FontStyle.Italic);
                    return style;
                case 6:
                    style = (FontStyle)(FontStyle.Bold | FontStyle.Underline);
                    return style;
                case 7:
                    style = (FontStyle)(FontStyle.Bold | FontStyle.Strikeout);
                    return style;
                case 8:
                    style = (FontStyle)(FontStyle.Italic | FontStyle.Underline);
                    return style;
                case 9:
                    style = (FontStyle)(FontStyle.Italic | FontStyle.Strikeout);
                    return style;
                case 10:
                    style = (FontStyle)(FontStyle.Underline | FontStyle.Strikeout);
                    return style;
                case 11:
                    style = (FontStyle)(FontStyle.Italic | FontStyle.Underline | FontStyle.Strikeout);
                    return style;
                case 12:
                    style = (FontStyle)(FontStyle.Bold | FontStyle.Underline | FontStyle.Strikeout);
                    return style;
                case 13:
                    style = (FontStyle)(FontStyle.Bold | FontStyle.Italic | FontStyle.Strikeout);
                    return style;
                case 14:
                    style = (FontStyle)(FontStyle.Bold | FontStyle.Italic | FontStyle.Underline);
                    return style;
                case 15:
                    style = (FontStyle)(FontStyle.Bold | FontStyle.Italic | FontStyle.Underline | FontStyle.Strikeout);
                    return style;

                default:
                    style = FontStyle.Regular;
                    return style;
            }
        }

        #endregion   少复制了个 ‘}’

上面少复制了个‘}’   注意添加就好。

下面的 changeFontSize 方法 放在加载项 或 button1_Click 中。

注意一下 changeFontSize 方法 的第三个参数,参数3 > =16 或 =0  ,字体样式为  style = FontStyle.Regular;(普通样式)    粗、斜、下划、删除没有了。

        private void button2_Click(object sender, EventArgs e)
        {
            richTextBox1.Select(2, 35);

            SetFontSytyle.changeFontSize(richTextBox1, 14);

            //SetFontSytyle.changeFontSize(richTextBox1, 14, FontStyle.Bold);
            //SetFontSytyle.changeFontSize(richTextBox1, 14, FontStyle.Bold, Color.Red);
            //SetFontSytyle.changeFontSize(richTextBox1, 14, (FontStyle)(FontStyle.Bold | FontStyle.Italic | FontStyle.Underline), Color.Red);
            //SetFontSytyle.changeFontSize(richTextBox1, 14, 15);
            //SetFontSytyle.changeFontSize(richTextBox1, 14, 15, Color.Red);
        }


上面的 changeFontSize 方法 +4重载。

去掉注释轮流试一下。

上效果图:




c# font gdicharset

阅读数 1976

c# Font字体

阅读数 120

C#实现缩放字体

阅读数 316

没有更多推荐了,返回首页