あわわ、v4.0.0 はプロファイル編集ができないじゃんコレ。
ここは弄くっていないので前からか、まぁ普通はデフォルト位置で十分だし。
とはいえ放置もアレなので修正しようかどうか、そういえば
ぱぇぽぃ2 ? Blog Archive ? GetFullPath
のようにファイルドロップでフルパス指定にしようとして忘れていた!
なんたってそうすれば System.Windows.Form への参照を排除できる。
WPF なのに OpenFileDialog のためだけに WindowsForm を参照していたし。
よく見たら System.Xml.Linq まで…こんなの SeeMe で使っていないよ。
ということで AboutDlg のように上記 IronPython コードを C# 化…
しようと思ったけど面倒なのでハンドラの追記だけで済ませた。
ちなみに
ぱぇぽぃ2 ? Blog Archive ? WPF Hyperlink class for IronPython
の C# 化はこうやった。
using System; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Text; using System.Windows.Media; using System.Collections.Generic; namespace SeeMe4 { class About : Window { public About(Window owner) { this.Owner = owner; this.WindowStartupLocation = WindowStartupLocation.CenterOwner; this.Title = "About SeeMe for Windows"; this.SizeToContent = SizeToContent.WidthAndHeight; this.ResizeMode = ResizeMode.NoResize; this.Icon = owner.Icon; // StackPanel var panel = new StackPanel(); // Dialog Icon and Image var img = new Image(); img.Source = owner.Icon; img.Width = 32; img.Height = 32; panel.Children.Add(img); // Create TextBlock List var v = new List<TextBlock>(); for (int i = 0; i < 5; i++) { var b = new TextBlock(); panel.Children.Add(b); v.Add(b); } v[0].Inlines.Add( new Bold(new Run("SeeMe for Windows 4.0.0\n"))); v[1].Text = "Windows Version ( " + Environment.OSVersion.Version + " )"; v[2].Text = "CLR Version ( " + Environment.Version.ToString() + " )\n"; v[3].Text = "Copyright(c)2003-2009 by sasakima-nao"; var url = new Hyperlink(new Run("http://palepoli.skr.jp/")); url.Click +=new RoutedEventHandler(url_Click); v[4].Inlines.Add(url); // Align Right button var btn = new Button(); btn.Content = "Close"; btn.Click += new RoutedEventHandler(btn_Click); DockPanel.SetDock(btn, Dock.Right); var dp = new DockPanel(); dp.LastChildFill = false; dp.Children.Add(btn); panel.Children.Add(dp); // Append this.Content = panel; } void btn_Click(object sender, RoutedEventArgs e) { Close(); } void url_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("http://palepoli.skr.jp/"); } } }
スクリーンショットを撮って気がついたが About のバージョンが 4.0.0 のままだ…
まあいいや、次の更新で直しておこう。
型指定がメンドクサイので var を使ったが何もかも IronPython より面倒。
中括弧とセミコロンと new と var が増えリストを System.Collections.Generic です。
特にハンドラ指定の RoutedEventHandler みたいなのってマジ書かなくてもよくないか?
こんなの Visual Studio エディタの助けが無かったら私は書けなかったかもだよ。
やっぱりこれからは IronPython だよ、EmEditor だけでデバッグもできるし。