当前位置: 首页 > news >正文

WPF检测网络状态切换

在这里插入图片描述

<Window x:Class="NetworkChange.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="网络状态监控" Height="300" Width="400"><StackPanel Margin="20"><TextBlock Text="连接列表:" FontWeight="Bold" Margin="0,0,0,10"/><ListBox x:Name="ConnectionListBox" Height="150" Margin="0,0,0,10"/><TextBlock x:Name="StatusText" Text="状态: 等待网络变化..." HorizontalAlignment="Center"/></StackPanel>
</Window>
using System;
using System.Collections.ObjectModel;
using System.Net.NetworkInformation;
using System.Windows;
using System.Windows.Threading;namespace NetworkChange
{public partial class MainWindow : Window{private ObservableCollection<string> connections = new ObservableCollection<string>();public MainWindow(){InitializeComponent();string originalString = "v_non_047-仪式结束 - 副本 (3).mp4";string result = originalString.Substring(6);// result = "WorldWPF"ConnectionListBox.ItemsSource = connections;// 添加一些测试数据connections.Add("192.168.1.100 - 计算机A");connections.Add("192.168.1.101 - 计算机B");// 开始监听网络变化StartNetworkMonitoring();}private void StartNetworkMonitoring(){// 使用完全限定的事件名称System.Net.NetworkInformation.NetworkChange.NetworkAvailabilityChanged += OnNetworkAvailabilityChanged;System.Net.NetworkInformation.NetworkChange.NetworkAddressChanged += OnNetworkAddressChanged;StatusText.Text = "状态: 正在监控网络...";}private void OnNetworkAvailabilityChanged(object sender, System.Net.NetworkInformation.NetworkAvailabilityEventArgs e){// 使用Dispatcher确保在UI线程执行Dispatcher.Invoke(() =>{if (!e.IsAvailable){ClearConnections();StatusText.Text = "状态: 网络已断开 - " + DateTime.Now.ToString("HH:mm:ss");}else{StatusText.Text = "状态: 网络已恢复 - " + DateTime.Now.ToString("HH:mm:ss");}});}private void OnNetworkAddressChanged(object sender, EventArgs e){Dispatcher.Invoke(() =>{ClearConnections();StatusText.Text = "状态: 检测到网络切换 - " + DateTime.Now.ToString("HH:mm:ss");});}private void ClearConnections(){connections.Clear();connections.Add("连接列表已清空");}protected override void OnClosed(EventArgs e){// 清理事件监听System.Net.NetworkInformation.NetworkChange.NetworkAvailabilityChanged -= OnNetworkAvailabilityChanged;System.Net.NetworkInformation.NetworkChange.NetworkAddressChanged -= OnNetworkAddressChanged;base.OnClosed(e);}}
}
http://www.dtcms.com/a/553448.html

相关文章:

  • ✨WPF编程进阶【6.1】:图形原则(附源码)
  • 网站建设企业建站哪家好?来这里看看网站建设时间进度表模板
  • 无锡地区做网站赣州快车微信公众号
  • Vue3的异步DOM更新:nextTick的正确使用方法
  • Vue 项目中全局样式的正确写法:不要把字体和主题写在 #app 上
  • 网站推广策划的策略凡科做的网站百度能收录吗
  • 如何用SQL进行多表联查(JOIN)?
  • 笔试强训:Week-3
  • 网站建设公司的前景怎么建立和设计公司网站
  • 【项目实战1 -瑞吉外卖|day21 】
  • 变分自编码器(VAE):用概率解锁生成式AI的“基因密码”
  • C++ 容器入门:从初始化到常用操作全解析
  • 飞致云开源社区月度动态报告(2025年10月)
  • 企业网站建设的步骤网站维护包括哪些
  • 网站建设缺乏个性网站如何优化关键词
  • GNN变体
  • SpringMVC基础入门
  • XiangJsonCraft v1.1.0发布:JSON配置网页的终极进化,支持所有CSS选择器!
  • UVa 12670 Counting Ones
  • C++17(新特性)
  • 韩国风网站什么网站有做册子版
  • day58-Shell编程(第四部分)
  • 用AI写了一个文档拼音标注工具 中文+拼音一键生成
  • 做网站还有意义同样是div 怎么有些网站收录少 有些多
  • 企必搜做网站做国际物流在哪些网站找客户
  • 移动端适配完全指南:从基础到最佳实践
  • 使用JMeter进行API性能压测(执行篇)
  • IntelliJ IDEA 远程调试(Remote Debugging)教程
  • 网站服务器++免费做电子手抄报的网站
  • 单页网站的优点网络公司是做什么的?