說,我們有一個字體:如何解析枚舉邏輯和?
Font f = new Font("Arial", 10, FontStyle.Italic | FontStyle.Bold);
如何去通過它的樣式?
foreach (FontStyle style in Enum.GetValues(typeof(FontStyle))
.OfType<FontStyle>()
.Where(fs => f.Style.HasFlag(fs)))
{
Console.WriteLine(style);
}
這是一種方法。但是
- 它也返回
FontStyle.Regular
。爲什麼? - 有沒有更好的方法來完成這項任務?
你爲什麼想每個款式?如果你只是想打印它,我建議'style.ToString(「F」)'。如果您需要對列表中的每種樣式進行操作,請將您的where語句更新爲'.Where(fs => fs!= FontStyle.Regular && f.Style.HasFlag(fs)))' – Trisped
@Trisped我正在製作自定義字體編輯器,我想有一個CheckedListBox來編輯字體樣式。根據'Font'實例,它會檢查必要的項目。所以我需要從'font.Style'中提取值。 – horgh
對不起,試圖刪除評論,但我的電腦崩潰了(不喜歡從休眠狀態喚醒)。請參閱下面我的建議答案。 – Trisped