SeeMe for Windows v4 beta2 のソースにコッソリ書いているが、
Hyperlink クラスをコードで作る方法が解らなかった。
Hyperlink クラス (System.Windows.Documents)
なんだよ、MSDN に普通に書いてあるや、どこを探していたのやら。
つまり Bold とかと同じように使えばいいということねん。
よし、これで 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()
ちょっとデザインが違うけど Windows ではこういう感じのほうが好まれそう。
WPF 使っているのに .NET 2.0 がどうのと出るのが少しだけ気に入らない。
つーかまだアルファにも達していないので自身のバージョン表記が滅茶苦茶だ。
とりあえず Hyperlink クラスの使い方はこれでオケのようだ。
たったコレだけのコードで About 完成、XAML ってマジで無駄だと思った。
今日はココしかやっていないのでバックアップはヤメとこう。