/// <summary>選択可能な全フォント一覧を取得します</summary>
        private void GetSystemFontName()
        {
            //todo:起動時に一度呼ぶだけで良いので、設定ファイルの読み込み箇所とかに移動させるべき
            // 日本語フォントを日本語で表示したいので、現在動いている環境の言語を取得する
            //todo:WinwowのLanguageに、このlanguageを指定する必要がある
            System.Windows.Markup.XmlLanguage language = System.Windows.Markup.XmlLanguage.GetLanguage
                                                             (System.Threading.Thread.CurrentThread.CurrentCulture.Name);

            // 使える全言語を取得
            var fonts = Fonts.SystemFontFamilies.Select
                            (i => new FontInfo()
            {
                FontFamily = i, FontName = i.Source
            });

            // IEnumerableのままだと要素の更新ができないので、一旦ローカルで受け取る
            FontInfo[] fontsArr = fonts.ToArray();

            // このままだと日本語で表示してくれないので、日本語のものはこちらで取得して入れ込み、表示してやる
            foreach (var fontInfo in fontsArr)
            {
                foreach (var familyName in fontInfo.FontFamily.FamilyNames)
                {
                    if (familyName.Key == language && familyName.Value != null)
                    {
                        fontInfo.FontName = familyName.Value;
                        break;
                    }
                }
            }

            FontList = fontsArr.ToList();//todo:ToArrayしているので型を配列にする
        }
Esempio n. 2
0
        private static CultureInfo GetCulture(DependencyObject element)
        {
            object      obj2            = element.GetValue(FrameworkElement.LanguageProperty);
            CultureInfo specificCulture = null;

            if (obj2 != null)
            {
                System.Windows.Markup.XmlLanguage language = (System.Windows.Markup.XmlLanguage)obj2;
                try
                {
                    specificCulture = language.GetSpecificCulture();
                }
                catch (InvalidOperationException)
                {
                }
            }
            return(specificCulture);
        }
 public GlyphRun(GlyphTypeface glyphTypeface, int bidiLevel, bool isSideways, double renderingEmSize, IList <ushort> glyphIndices, System.Windows.Point baselineOrigin, IList <double> advanceWidths, IList <System.Windows.Point> glyphOffsets, IList <char> characters, string deviceFontName, IList <ushort> clusterMap, IList <bool> caretStops, System.Windows.Markup.XmlLanguage language)
 {
 }