バージョン情報ダイアログの作り方
最初Googleで検索したらWPFでの作り方の紹介サイトの実装方法がダサかったりするので「WPF+Xamlらしい」やり方を書き残す。どうせまた僕は時間が経つと忘れるから。
AboutBoxWindow.xaml.cs
public partial class AboutBoxWindow: Window { public AboutBoxWindow() { InitializeComponent(); this.DataContext = this; this.FileVersionInfo = FileVersionInfo.GetVersionInfo(Environment.GetCommandLineArgs()[0]); } public FileVersionInfo FileVersionInfo { get { return (FileVersionInfo)GetValue(FileVersionInfoProperty); } set { SetValue(FileVersionInfoProperty, value); } } public static readonly DependencyProperty FileVersionInfoProperty = DependencyProperty.Register("FileVersionInfo", typeof(FileVersionInfo), typeof(AboutBoxWindow), new UIPropertyMetadata(null)); }
AboutBoxWindow.xaml
<TextBlock LineHeight="16" Padding="4" DataContext="{Binding FileVersionInfo}"> <TextBlock.Inlines> 製品名:<LineBreak/> <TextBlock Margin="8,0,0,4" Text="{Binding ProductName}"/><LineBreak/> 製品バージョン番号:<LineBreak/> <TextBlock Margin="8,0,0,4" Text="{Binding ProductVersion}"/><LineBreak/> 著作権情報:<LineBreak/> <TextBlock Margin="8,0,0,4" Text="{Binding LegalCopyright}"/><LineBreak/> </TextBlock.Inlines> </TextBlock>
ちなみに「デバッグ構成でVisual Studioホスティングプロセスを有効に」していると、デバッグ時はVisualStudioのプロセスのバージョンリソースが出ちゃう。