Слияние кода завершено, страница обновится автоматически
using System;
using System.Windows;
using System.Windows.Documents;
using System.Windows.Controls;
using System.Windows.Media;
using System.Globalization;
namespace LunarSF.SHomeWorkshop.LunarMarkdownEditor
{
/// <summary>
/// 此类用于主界面字体列表。
/// </summary>
internal class FontFamilyListItem : TextBlock, IComparable
{
private string _displayName;
/// <summary>
/// [构造方法]用于生成字体列表项。
/// </summary>
/// <param name="fontFamily">字体。</param>
public FontFamilyListItem(FontFamily fontFamily)
{
_displayName = GetDisplayName(fontFamily);
this.FontFamily = fontFamily;
this.Text = _displayName;
this.ToolTip = _displayName;
// In the case of symbol font, apply the default message font to the text so it can be read.
if (IsSymbolFont(fontFamily))
{
TextRange range = new TextRange(this.ContentStart, this.ContentEnd);
range.ApplyPropertyValue(TextBlock.FontFamilyProperty, SystemFonts.MessageFontFamily);
}
}
/// <summary>
/// 覆盖方法,显示字体名称。
/// </summary>
public override string ToString()
{
return _displayName;
}
/// <summary>
/// 根据字体名称来排序的方法。
/// </summary>
int IComparable.CompareTo(object obj)
{
return string.Compare(_displayName, obj.ToString(), true, CultureInfo.CurrentCulture);
}
internal static bool IsSymbolFont(FontFamily fontFamily)
{
foreach (Typeface typeface in fontFamily.GetTypefaces())
{
GlyphTypeface face;
if (typeface.TryGetGlyphTypeface(out face))
{
return face.Symbol;
}
}
return false;
}
/// <summary>
/// 取字休的显示名称。
/// </summary>
/// <param name="family">字体族。</param>
/// <returns></returns>
internal static string GetDisplayName(FontFamily family)
{
return NameDictionaryHelper.GetDisplayName(family.FamilyNames);
}
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )