[Silverlight] Tips : 境界線なしの Out of Browser アプリケーションを終了する方法
2011年3月2日 コメントする
Silverlight の Out of Browser についての Tips をいくつか書いてます(時間かかりすぎだが・・・)。
- [Silverlight] Tips : In Browser か Out of Browser かの判別
- [Silverlight] Tips : Out of Browser 実行を有効にする方法
- [Silverlight] Tips : Out of Browser 昇格時のウィンドウスタイル
- [Silverlight] Tips : 境界線なしの Out of Browser アプリケーションでウィンドウ移動する方法
前回 の続きとして、Silverlight の境界線なし Out of Browser アプリを終了する方法です。
紹介しますと言って、メチャメチャ簡単なんですが。
コードは2行です。
境界線なしの OOB アプリを終了する方法を用意しなければならないのは、実行中のアプリの画面を見ればすぐわかります。
タイトルバーがないために [閉じる] ボタンもありません。これじゃアプリを終われません。
結論から言うと、MainWindow を Close するだけです。
ただし In Browser でこれを実行しても意味がないので、IsRunningOutOfBrowser の確認をします。
これだけです。
例えば、Button の Click イベントハンドラであればこうなります。
private void CloseButton_Click(object sender, RoutedEventArgs e) { if (Application.Current.IsRunningOutOfBrowser) Application.Current.MainWindow.Close(); }
一応、 前の投稿 の「見た目がわかりやすいアプリ」にボタンを一つ追加してみます。
せっかくの Silverlight アプリですから、当然本来であればもっと見栄えのするボタンを貼るべきでしょうが、とりあえず地味な Button だと、こんな風にするのはどうでしょう。
念のため、ソースコード(XAML)も載せておきます。
<UserControl x:Class="OobWinStyle.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <Grid x:Name="LayoutRoot" Background="Wheat"> <Rectangle Name="DragArea" Width="400" Height="51" Stroke="Black" StrokeThickness="1" HorizontalAlignment="Left" VerticalAlignment="Top" Fill="MidnightBlue" MouseLeftButtonDown="DragArea_MouseLeftButtonDown" /> <Button Name="CloseButton" Content="×" Width="33" Height="30" Margin="0,12,8,0" HorizontalAlignment="Right" VerticalAlignment="Top" FontSize="16" Click="CloseButton_Click" /> </Grid> </UserControl>
境界線なしの Out of Browser アプリでも、ウィンドウ移動もアプリ終了も非常に簡単です。
これで見栄えのするアプリケーションが作り放題です(そこの紹介はできません、あしからず)。
