与Font类的Style属性一起使用的C#技术

问题描述:

有人可以帮助解释下面的一段代码。与Font类的Style属性一起使用的C#技术

 richTextBox1.Font = new Font(richTextBox1.Font.FontFamily, 
      richTextBox1.Font.Size, 
      richTextBox1.Font.Style^FontStyle.Underline); 

该代码与表单中的onclick事件相关,用于打开和关闭下划线字体样式。我想我明白Exclusive Or,如果任何一个输入是真的,那么结果是真的,但如果两个都是真的或两者都是假的,那么输出是假的。

我不明白这是如何适用于Style属性,但它如何存储这些数据,Style属性不仅仅是一个记录枚举的枚举值。我不明白这个属性如何记录多个值的结果,还是不这样做?

Style属性是一个标志enum其中值被定义为二的幂:1,2,4,8,它们可以组合,因为它们是每一个只在一个不同的位置上的单个位。再说了,使用或获得粗体斜体文字:

0001 Bold = 1 
| 0010 Italic = 2 
----------------- 
    0011 Bold/Italic = 3 

和XOR将翻转它,你说:

0011 Bold/Italic = 3 
^ 0010 Italic  = 2 
---------------------- 
    0001 Bold  = 1 

0001 Bold = 1 
^ 0010 Italic = 2 
----------------- 
    0011 Bold/Italic = 3 
+0

MiniTech移动谢谢 – orangesherbert 2012-03-06 16:59:14

样式枚举有flags attribute集合。这允许它被视为二进制数字,其中每个位表示不同的样式属性。二进制算术可用于组合样式集合,例如,将粗体和斜体合并为一个值。