淺談Silverlight 3中在線與離線狀態檢測
作者:代震軍
本文將介紹如何在Silverlight3 Beta中進行在線與離線狀態檢測,主要是利用NetworkChange,NetworkInterface這兩個類來實現。
在Silverlight3中提供了NetworkChange,NetworkInterface這兩個類(均為abstract型),其中實現了NetworkAddressChanged的事件處理器用來檢測當前在線狀態,而NetworkInterface類的 GetIsNetworkAvailable()方法(返回bool類型),用來判斷當前是否在線。有了這兩個類,就可以很方便的實現動態檢測當前應用是否連線了。
下面就是我寫的一個DEMO,用于演示如何使用這兩個方法,其中的XAML代碼如下:
<UserControl x:Class="Off_Online.MainPage" Grid.Row="1" FontWeight="Bold" HorizontalAlignment="Center" >當前狀態未知</TextBlock> |
而相應的CS代碼如下:
using System.Net.NetworkInformation;
namespace Off_Online
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(MainPage_Loaded);
}
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
NetworkChange.NetworkAddressChanged += OnNetworkAddressChanged;
UpdateNetWorkState();
}
void UpdateNetWorkState()
{
string state = NetworkInterface.GetIsNetworkAvailable() ? "Online" : "Offline";
StateIcon.Source = new System.Windows.Media.Imaging.BitmapImage(new Uri("/Images/" + state + ".jpg", UriKind.Relative));
NetWorkState.Text = NetworkInterface.GetIsNetworkAvailable() ? "在線" : "離線";
}
void OnNetworkAddressChanged(object sender, EventArgs e)
{
UpdateNetWorkState();
}
}
}
下面就是其運行效果,首先是在線狀態:
然后拔掉網線,就會顯示離線狀態了
好了,今天的內容就先到這里了,源碼下載,請點擊這里:)
【編輯推薦】
責任編輯:彭凡
來源:
cnblogs