淺談Silverlight 3中在線與離線狀態(tài)檢測
在Silverlight3中提供了NetworkChange,NetworkInterface這兩個類(均為abstract型),其中實現(xiàn)了NetworkAddressChanged的事件處理器用來檢測當(dāng)前在線狀態(tài),而NetworkInterface類的 GetIsNetworkAvailable()方法(返回bool類型),用來判斷當(dāng)前是否在線。有了這兩個類,就可以很方便的實現(xiàn)動態(tài)檢測當(dāng)前應(yīng)用是否連線了。
下面就是我寫的一個DEMO,用于演示如何使用這兩個方法,其中的XAML代碼如下:
<UserControl x:Class="Off_Online.MainPage" Grid.Row="1" FontWeight="Bold" HorizontalAlignment="Center" >當(dāng)前狀態(tài)未知</TextBlock> |
而相應(yīng)的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();
}
}
}
下面就是其運行效果,首先是在線狀態(tài):
然后拔掉網(wǎng)線,就會顯示離線狀態(tài)了
好了,今天的內(nèi)容就先到這里了,源碼下載,請點擊這里:)
【編輯推薦】