[終了]ボタンを押した時にアプリが終わるようにします。
終了ボタンのXAML記述
WPFはxamlでウィンドウの配置等を記述します。これはデザインエディタと連動していて、エディタでグラフィカルに編集しても自動的にxamlに反映されます。
MainWindow.xaml
<window x:Class="CommandWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="400" Width="560">
<grid Margin="0,0,0,0">
<textbox x:Name="TextBoxFolder" Height="23" Margin="10,10,90,0" TextWrapping="Wrap" VerticalAlignment="Top" Text="フォルダを指定"/>
<button x:Name="ButtonFolder" Content="フォルダ" Margin="0,10,10,0" VerticalAlignment="Top" Click="ButtonFolder_Click" HorizontalAlignment="Right" Width="75"/>
<richtextbox x:Name="TextBoxLog" Margin="10,38,10,52" VerticalScrollBarVisibility="Visible" IsReadOnly="True">
<flowdocument>
<paragraph>
<run Text="ここに実行ログを出力"/>
</Paragraph>
</FlowDocument>
</RichTextBox>
<progressbar x:Name="ProgressBarRun" Margin="10,0,10,37" Height="10" VerticalAlignment="Bottom"/>
<button x:Name="ButtonRun" Content="実行" Margin="0,0,90,8" Click="ButtonRun_Click" Height="24" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="75"/>
<button x:Name="ButtonClose" Content="終了" Margin="0,0,10,8" Click="ButtonClose_Click" Height="24" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="75"/>
</Grid>
</Window>
ほとんどの属性はエディタでぐりぐりやっていれば勝手に設定されるのですが、若干わかりにくい属性について説明します。
x:Name="ButtonClose"
この「名前」は、表示名(Content)ではなく、コードからコントロールにアクセスする変数名になります。
Click="ButtonClose_Click"
ボタンクリックしたときに呼ばれるメソッド名になります。エディタ上でボタンをダブルクリックすると自動で追加されますが、"(x:Name)_Click"というような名前に依存した呼出名になります。名前が定義されていない時は"Button_Click"という呼出名になるようです。
終了ボタンのコード実装
簡単かと思ったのですが、これぞという解説がされている情報を探しだすのに案外手間取りました。判ってしまえば簡単なんですけどね。自身のClose()を呼ぶだけでした。
MainWindow.xaml.csの一部
// アプリ終了
private void ButtonClose_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
URL
http://msdn.microsoft.com/ja-jp/library/bb655895%28v=vs.90%29.aspx