kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

フォント一覧を表示する

GIGAZINEこの記事をみて、Silverlightで作れないか?と思ったら、FontsコレクションがSilverlightにはありませんでしたorz。WPFで作るしかないようです。

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="435" Width="577" Loaded="OnLoad">
    <Grid>
        <ListBox Name="listBox1" />
    </Grid>
</Window>
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;

namespace WpfApplication1
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

        private void OnLoad(object sender, RoutedEventArgs e)
        {
            foreach (FontFamily localFonts in Fonts.SystemFontFamilies)
            {
                Label item = new Label();
                item.FontFamily = localFonts;
                item.Content = localFonts.Source;
                item.FontSize = 16;
                listBox1.Items.Add(item);
            }
        }
    }
}

5分で書いてみた。ところがここから先がちょっと困りもの。Adobeのotfのフォントを列挙するとFileFormatExceptionが出たり、フォントのsourceプロパティが表示されず、歯抜けになったりするところがあります。うーん。