[ad#468×15]
前回はPingを実行するサービスの作成と、サービスの参照を追加した。
今回は、ユーザーインターフェースの作成とPingサービスの利用について記す。
まずはSilverlightPingプロジェクトにあるMainPage.xamlを開いて、下記のようにデザインする。

<Grid x:Name="LayoutRoot" Background="White"> <TextBox Height="24" HorizontalAlignment="Left" Margin="12,20,0,0" Name="txtHost" VerticalAlignment="Top" Width="150" /> <Button Content="PING" Height="23" HorizontalAlignment="Left" Margin="168,20,0,0" Name="btnPing" VerticalAlignment="Top" Width="75" Click="btnPing_Click" /> <TextBlock Height="115" HorizontalAlignment="Left" Margin="14,54,0,0" Name="textBlockMessage" Text="" VerticalAlignment="Top" Width="345" /> </Grid>
次に、MainPage.xaml.cs を下記のようにする。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using SilverlightPing.PingService;
namespace SilverlightPing
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}
/// <summary>
/// [PING]ボタンクリック時の処理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnPing_Click(object sender, RoutedEventArgs e)
{
PingClient pc = new PingClient();
pc.ExecutePingCompleted += new EventHandler<ExecutePingCompletedEventArgs>(pc_ExecutePingCompleted);
// Pingの実行
pc.ExecutePingAsync(txtHost.Text);
}
/// <summary>
/// Ping完了時の処理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void pc_ExecutePingCompleted(object sender, ExecutePingCompletedEventArgs e)
{
// 実行結果を表示
textBlockMessage.Text = e.Result.ToString();
}
}
}
上記について補足説明。
まず PingServiceを使用できるようにするため、using SilverlightPing.PingService; を追加している。
次に[Ping]ボタンがクリックされたときのイベントbtnPing_Clickでは、PingClientクラスのインスタンスを作成してしている。
このPingClientクラスは、PingServiceを作成したときに自動で生成されたもので「WCFサービス名Clinent」という名称になる。
WCFサービスはPingという名前で作成したので、PingClientというクラスが自動で生成されたと言うことである。
で、Pingの実行が完了したときのイベントとして、pc_ExecutePingCompleted を追加している。
これにより、Pingの実行完了をイベントで取得し、TextBlockへメッセージを表示している。
以上でSilverlightからPingを実行するアプリの作成は終わり。
ちなみに、このアプリでyahooに対してPingをしてみたところ下記のようになった。

Please follow and like us:

コメント