WPF Hyperlink class for IronPython

SeeMe for Windows v4 beta2 のソースにコッソリ書いているが、
Hyperlink クラスをコードで作る方法が解らなかった。

Hyperlink クラス (System.Windows.Documents)

なんだよ、MSDN に普通に書いてあるや、どこを探していたのやら。
つまり Bold とかと同じように使えばいいということねん。

ぱぇぽぃ2 ? Blog Archive ? 初心者同然

よし、これで Linux 版の GtkAboutDialog と同じレイアウトにしてみる。
Windows 自体というか WPF だけでも専用ダイアログを用意してほしいんだが。

class AboutDlg(Window):
    """
        SeeMe About class
    """
    def __init__(self, owner, path):
        """
            Hyperlink, Run
            from System.Windows.Documents import *
        """
        self.Owner = owner
        self.path = path
        self.WindowStartupLocation = WindowStartupLocation.CenterOwner
        self.Title = "About SeeMe for Windows"
        self.SizeToContent = SizeToContent.WidthAndHeight
        self.ResizeMode = ResizeMode.NoResize
        self.Icon = BitmapFrame.Create(Uri(self.path + "\\img\\seeme.ico"))
        # StackPanel
        panel = StackPanel()
        # Dialog Icon and Image
        img = Image()
        img.Source = BitmapImage(Uri(self.path + "\\img\\seeme.ico"))
        img.Width = 32
        img.Height = 32
        panel.Children.Add(img)
        # Create TextBlock List
        v = []
        for i in range(5):
            b = TextBlock()
            panel.Children.Add(b)
            v.append(b)
        v[0].Inlines.Add(Bold(Run("SeeMe for Windows 5.0.0\n")))
        v[1].Text = "Windows Version ( %s )" % Environment.OSVersion.Version
        v[2].Text = sys.version + "\n"
        v[3].Text = "Copyright(c)2003-2009 by sasakima-nao"
        url = Hyperlink(Run("http://palepoli.skr.jp/"))
        url.Click += self.on_url
        v[4].Inlines.Add(url)
        # Align Right button
        btn = Button()
        btn.Content = "Close"
        btn.Click += self.on_exit
        DockPanel.SetDock(btn, Dock.Right)
        dp = DockPanel()
        dp.LastChildFill = False
        dp.Children.Add(btn)
        panel.Children.Add(dp)
        # Append
        self.Content = panel

    def on_url(self, sender, e):
        Diagnostics.Process.Start("http://palepoli.skr.jp/")

    def on_exit(self, sender, e):
        self.Close()

コレを Show() でオーナーウインドウから呼び出す

def on_about(self, sender, e):
    about = AboutDlg(self, self.path)
    about.Show()

about_dialog

ちょっとデザインが違うけど Windows ではこういう感じのほうが好まれそう。
WPF 使っているのに .NET 2.0 がどうのと出るのが少しだけ気に入らない。
つーかまだアルファにも達していないので自身のバージョン表記が滅茶苦茶だ。

とりあえず Hyperlink クラスの使い方はこれでオケのようだ。
たったコレだけのコードで About 完成、XAML ってマジで無駄だと思った。

今日はココしかやっていないのでバックアップはヤメとこう。