12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Text.RegularExpressions;
- using System.Timers;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Navigation;
- using System.Windows.Shapes;
- using System.Windows.Threading;
- using System.ComponentModel;
- namespace WinUI
- {
- /// <summary>
- /// Interaction logic for MainWindow.xaml
- /// </summary>
- public partial class NetworkListView : Window
- {
- Regex charRegex = new Regex("[0-9a-fxA-FX]");
- Regex wholeStringRegex = new Regex("^[0-9a-fxA-FX]+$");
- public NetworkListView()
- {
- InitializeComponent();
- Closed += onClosed;
- NetworkMonitor.Instance.SubscribeNetworkUpdates(updateNetworks);
- }
- ~NetworkListView()
- {
- }
- protected override void OnClosing(CancelEventArgs e)
- {
- e.Cancel = true;
- Hide();
- }
- private void onClosed(object sender, System.EventArgs e)
- {
- NetworkMonitor.Instance.UnsubscribeNetworkUpdates(updateNetworks);
- }
- private void updateNetworks(List<ZeroTierNetwork> networks)
- {
- if (networks != null)
- {
- networksPage.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
- {
- networksPage.setNetworks(networks);
- }));
- }
- }
- private void OnNetworkEntered(object sender, TextCompositionEventArgs e)
- {
- e.Handled = !charRegex.IsMatch(e.Text);
- }
- private void OnPaste(object sender, DataObjectPastingEventArgs e)
- {
- var isText = e.SourceDataObject.GetDataPresent(DataFormats.UnicodeText, true);
- if (!isText) return;
- var text = e.SourceDataObject.GetData(DataFormats.UnicodeText) as string;
- if (!wholeStringRegex.IsMatch(text))
- {
- e.CancelCommand();
- }
- }
- }
- }
|