1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lunarsf-Lunar-Markdown-Editor

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
FontFamilyListItem.cs 2.3 КБ
Копировать Редактировать Исходные данные Просмотреть построчно История
LunarSF Отправлено 9 лет назад ab5a981
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 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/lunarsf-Lunar-Markdown-Editor.git
git@gitlife.ru:oschina-mirror/lunarsf-Lunar-Markdown-Editor.git
oschina-mirror
lunarsf-Lunar-Markdown-Editor
lunarsf-Lunar-Markdown-Editor
v0.4-beta8