2010-05-11 1 views
14

System.Drawing.Font 클래스의 생성자를 살펴보면 System.Drawing.FontStyle 열거 형에 정의 된 FontStyles 중 하나에서 전달할 매개 변수가 있습니다.글꼴을 인스턴스화 할 때 여러 FontStyles를 설정하는 방법은 무엇입니까?

즉. 굵게 기울임 정기 밑줄

거기에 굵게, 기울임 꼴, 밑줄 등 부울 속성은 인스턴스 객체에 있지만 그들은 읽기 전용입니다.

굵게 및 밑줄과 같은 여러 스타일을 사용하도록 글꼴을 정의하고 싶습니다.

어떻게하면됩니까?

답변

31

FontStyle 열거 형은 Flags 열거 형입니다. 즉 멤버가 모두 2의 제곱수이므로 이진 OR을 사용하여 멤버를 결합 할 수 있습니다. 당신이 대담을 원하는 밑줄 경우

예를 들어,

수직 바 ( |)
FontStyle.Bold | FontStyle.Underline 

이진 OR 연산자입니다 전달할 것입니다.

Font font = new Font(this.Font, FontStyle.Bold | FontStyle.Underline); 
+0

는 근무 글꼴 생성자에서 – anon58192932

10

, 당신은 OR 연산자를 사용하여 여러 FontStyles을 결합 할 수 있습니다 완벽하게 고마워! 이러한 종류의 것들은 우리에게 자바 마약 중독자에 대한 새로운 개념입니다.
0

당신은 각각의 경우에 대해 여러 IFS를 방지하기 위해이 같은 것을 사용할 수 있습니다 :

//define a font to use. 
Font font; 

font = new Font(fontname, fontsize, GraphicsUnit.Pixel); 

if (bold) 
    font = new Font(font, font.Style^FontStyle.Bold); 
if (italic) 
    font = new Font(font, font.Style^FontStyle.Italic); 
if (underline) 
    font = new Font(font, font.Style^FontStyle.Underline); 
if (strikeout) 
    font = new Font(font, font.Style^FontStyle.Strikeout); 
+0

이것은 매우 비효율적입니다 ... 플래그 enum을 사용하여 한 번에 여러 스타일을 설정합니다. – Tim