private void createButton_Click(object sender, RoutedEventArgs e) { directoriesTextBox.Text = directoriesTextBox.Text + "\nCreating PAC sheets: \n"; bool created = false; //loop for the directories length for( for (int i = 0; i < directories.Length; i++) { try { //Get data from strategy string[,] strategyData = GetData(directories[i]);// if exception then catch and inform user that file is not valid IQ4 file if (strategyData[3, 0] == null) { directoriesTextBox.Text = directoriesTextBox.Text + "WARNING - " + directories[i] + " Controller does not have any inputs or outputs!" + "\n"; } else { // Create excel spreadsheets ExcelDataManager ExcelManager = new ExcelDataManager(); ExcelManager.InsertData(strategyData); //ExcelManager.SaveReport(); created = ExcelManager.AutoSaveReport(aLan, aOs, pacDirectory);//without directory and file name selector if (created) { string siteName = siteTextBox.Text; foreach (char c in System.IO.Path.GetInvalidFileNameChars()) { siteName = siteName.Replace(c, '-'); } //directoriesTextBox.Text = directoriesTextBox.Text + "Created: " + System.AppDomain.CurrentDomain.BaseDirectory + "PAC Sheets" + "\\" + siteTextBox.Text + "_L" + aLan + "O" + aOs + "_PAC.xlsx." + "\n"; directoriesTextBox.Text = directoriesTextBox.Text + "Created: " + pacDirectory + siteName + "_L" + aLan + "O" + aOs + "_PAC.xlsx." + "\n"; MyScrollViewer.ScrollToBottom(); Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Background, (Action)(() => { })); } else { directoriesTextBox.Text = directoriesTextBox.Text + "Error - file not created! Please close Excel app."; } int dummy = 0; } } catch (Exception ex) { if (ex.Message.Contains("IOAssignment")) { directoriesTextBox.Text = directoriesTextBox.Text + "WARNING - File: " + directories[i] + " is not a valid IQ4 strategy file!" + "\n"; MyScrollViewer.ScrollToBottom(); Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Background, (Action)(() => { })); } int test = 1; } } if (created) { //MessageBox.Show("Excel documents have been created succesfully.", "Success", MessageBoxButton.OK, MessageBoxImage.Information); directoriesTextBox.Text = directoriesTextBox.Text + "\nFinished creating the files."; } }
private async void CheckMessage() { switch (TypingArea.Text) { case "": NotifyUser("You cannot send an empty message."); return; case "关闭解析": viewmodel.AddSelf(TypingArea.Text); TypingArea.Text = ""; viewmodel.AddEmilia("好的,JSON解析已关闭。不过这样哥哥还能看懂我说话吗?"); doParse = false; return; case "开启解析": viewmodel.AddSelf(TypingArea.Text); TypingArea.Text = ""; viewmodel.AddEmilia("好的,JSON解析已开启。不过人类的语言用着有些别扭呢=v="); doParse = true; return; case "放点音乐吧": viewmodel.AddSelf(TypingArea.Text); TypingArea.Text = ""; viewmodel.AddEmilia("好的,开启音乐播放器~"); (Parent as Frame).Navigate(typeof(PlayerPage), 0); return; default: break; } if (TypingArea.Text.Contains("播放")) { viewmodel.AddSelf(TypingArea.Text); string[] parse = TypingArea.Text.Split(' '); int index; TypingArea.Text = ""; if ((index = MusicVM.GetInstance().hasMedia(parse[1])) != -1) { viewmodel.AddEmilia("好的,即将为您播放 " + MusicVM.GetInstance().Musics[index].Title); (Parent as Frame).Navigate(typeof(PlayerPage), index); } else { viewmodel.AddEmilia("没有找到您要播放的曲子,是否是您输入的格式有误?\n Tips:发送 播放 【音乐名字】 以播放音乐"); } return; } string message = string.Copy(TypingArea.Text); TypingArea.Text = ""; viewmodel.AddSelf(message); MyScrollViewer.UpdateLayout(); MyScrollViewer.ChangeView(null, double.MaxValue, null); SendMessage(message); }
private void CheckMessage() { switch (TypingArea.Text) { case "": NotifyUser("You cannot send an empty message."); return; case "关闭解析": viewmodel.AddSelf(TypingArea.Text); TypingArea.Text = ""; viewmodel.AddEmilia("XML解析已关闭。读不懂的话就别勉强了。"); doParse = false; return; case "开启解析": viewmodel.AddSelf(TypingArea.Text); TypingArea.Text = ""; viewmodel.AddEmilia("XML解析已开启。回到人类语言的感觉如何?"); doParse = true; return; default: break; } string message = string.Copy(TypingArea.Text); TypingArea.Text = ""; viewmodel.AddSelf(message); MyScrollViewer.UpdateLayout(); MyScrollViewer.ChangeView(null, double.MaxValue, null); SendMessage(message); }
private void OnPasteFromClipboard(object sender, RoutedEventArgs e) { var image = ClipboardUtils.ImageFromClipboardDib().AsWriteable(); image.LuminanceBlend(); MyImage.Source = image; if (MyCanvas.Width < image.Width) { MyCanvas.Width = image.Width; MyCanvas.Height = MyCanvas.Width * 1.6; } if (MyCanvas.Height < image.Height) { MyCanvas.Height = image.Width; MyCanvas.Width = Math.Round(MyCanvas.Height / 1.6); } var w = MyCanvas.Width; var h = MyCanvas.Height; var x = Math.Round((w - image.Width) / 2); var y = Math.Round((h - image.Height) / 2); Canvas.SetLeft(MyImage, x); Canvas.SetTop(MyImage, y); var wport = MyScrollViewer.ViewportWidth; var hport = MyScrollViewer.ViewportHeight; var xport = Math.Round((w - wport) / 2); var yport = Math.Round((h - hport) / 2); MyScrollViewer.ScrollToHorizontalOffset(xport); MyScrollViewer.ScrollToVerticalOffset(yport); }
private async void SendMessage(string message) { var client = new HttpClient(); Uri requestUri; if (message.Contains("本机")) { requestUri = new Uri("http://ip-api.com/xml/"); } else if (Regex.Match(message, "((25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))\\.){3}(25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))").Success) { requestUri = new Uri("http://ip-api.com/xml/" + message); } else { NotifyUser("您输入的语句有误,请直接输入您要查询的 IP 地址,或者输入\"本机IP\""); return; } string body = ""; try { var response = await client.GetAsync(requestUri); response.EnsureSuccessStatusCode(); body = await response.Content.ReadAsStringAsync(); } catch (Exception ex) { body = "Error: " + ex.HResult.ToString("X") + " Message: " + ex.Message; } string result = ""; if (doParse) { ResponsXML.SetSource(body); if (ResponsXML.GetField("status") == "success") { result += "IP 地址:" + ResponsXML.GetField("query") + "\n国家:" + ResponsXML.GetField("country") + "\n地区:" + ResponsXML.GetField("regionName") + "\n城市:" + ResponsXML.GetField("city") + "\n时区:" + ResponsXML.GetField("timezone") + "\n服务提供商:" + ResponsXML.GetField("isp"); } else { result = "请检查您输入的 IP 地址,他似乎不合法或不支持查询"; } } else { result = body; } viewmodel.AddEmilia(result); MyScrollViewer.UpdateLayout(); MyScrollViewer.ChangeView(null, double.MaxValue, null); }
private void SendMessage(object sender, KeyRoutedEventArgs e) { if (e.Key == VirtualKey.Enter) { string spokenMessage = ""; spokenMessage = TxtSend.Text; if (!string.IsNullOrEmpty(spokenMessage)) { // Send the recognition result text as a Realtime message Message message = new Message(); message.id = myID; message.text = spokenMessage; message.sentAt = DateTime.Now.ToLocalTime().ToString("HH:mm"); string jsonMessage = JsonConvert.SerializeObject(message); Debug.WriteLine("Sending message: " + jsonMessage); ortcClient.Send(chatcode, jsonMessage); TxtSend.Text = ""; MyScrollViewer.UpdateLayout(); MyScrollViewer.ChangeView(0.0f, double.MaxValue, 1.0f); //MyScrollViewer.ScrollToVerticalOffset(MyScrollViewer.ScrollableHeight); } } }
private void MyScrollViewer_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e) { if (MyScrollViewer.ScrollableHeight == MyScrollViewer.VerticalOffset) { Show(Global.Index_Start); //显示图片 MyScrollViewer.ScrollToVerticalOffset(0); //滚动条复位 } }
public QueryPage() { this.InitializeComponent(); this.DataContext = viewmodel = ViewModel.GetInstance(true); Window.Current.CoreWindow.Dispatcher.AcceleratorKeyActivated += Dispatcher_AcceleratorKeyActivated; MyScrollViewer.UpdateLayout(); MyScrollViewer.ChangeView(null, double.MaxValue, null); }
private void TextBox_KeyDown(object sender, Windows.UI.Xaml.Input.KeyRoutedEventArgs e) { if (e.Key.Equals(VirtualKey.Enter)) { Button_Click(sender, new RoutedEventArgs()); MyScrollViewer.UpdateLayout(); MyScrollViewer.ChangeView(0, double.MaxValue, 0); e.Handled = true; } }
void Answer() { TextBox textBoxB = new TextBox(); textBoxB.Foreground = Brushes.Red; textBoxB.FontSize = 36; textBoxB.Text += "B: " + ans.GetAnswer() + "\n"; textBoxB.TextAlignment = TextAlignment.Right; StackChat.Children.Add(textBoxB); MyScrollViewer.ScrollToBottom(); }
private void MyStackPanel_SizeChanged(object sender, SizeChangedEventArgs e) { double newContentHeight = MyScrollViewer.ScrollableHeight + MyScrollViewer.ViewportHeight; if (_prevContentHeight > 0) { double ratio = newContentHeight / _prevContentHeight; double newVerticalOffset = _prevVerticalOffset * ratio; MyScrollViewer.ChangeView(null, newVerticalOffset, null, true); } }
//private void TextB_KeyDown(object sender, KeyEventArgs e) //{ // if (TextB.Text.Length > 0 && e.Key == Key.Enter) AddTextB(); //} void AddTextA() { TextBox textBoxA = new TextBox(); textBoxA.Foreground = Brushes.Blue; textBoxA.FontSize = 36; textBoxA.Text += "A: " + TextA.Text + "\n"; textBoxA.TextAlignment = TextAlignment.Left; StackChat.Children.Add(textBoxA); TextA.Text = ""; MyScrollViewer.ScrollToBottom(); Answer(); }
private void Dispatcher_AcceleratorKeyActivated(CoreDispatcher sender, AcceleratorKeyEventArgs args) { if (args.EventType.ToString().Contains("Down")) { var enter = Window.Current.CoreWindow.GetKeyState(VirtualKey.Enter); if (enter.HasFlag(CoreVirtualKeyStates.Down)) { CheckMessage(); MyScrollViewer.UpdateLayout(); MyScrollViewer.ChangeView(null, double.MaxValue, null); } } }
private async void SendMessage(string message) { var client = new HttpClient(); var content = new StringContent(RequestJSON.GetJSON(message)); Uri requestUri = new Uri("http://openapi.tuling123.com/openapi/api/v2"); content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"); string body = ""; try { var response = await client.PostAsync(requestUri, content); response.EnsureSuccessStatusCode(); body = await response.Content.ReadAsStringAsync(); } catch (Exception ex) { body = "Error: " + ex.HResult.ToString("X") + " Message: " + ex.Message; } string text = ""; if (doParse) { RequestJSON.SetSource(body); var jsonurl = RequestJSON.GetURL(); text = RequestJSON.GetText(); if (jsonurl != "") { text += "\n" + jsonurl; } } else { text = body; } viewmodel.AddEmilia(text); MyScrollViewer.UpdateLayout(); MyScrollViewer.ChangeView(null, double.MaxValue, null); }
private void SelectButton_Click(object sender, RoutedEventArgs e) { //first reset the directories!!! directoriesTextBox.Text = "Selected files: \n"; if (directories != null) { Array.Clear(directories, 0, directories.Length); } // Create OpenFileDialog Microsoft.Win32.OpenFileDialog openFileDlg = new Microsoft.Win32.OpenFileDialog(); openFileDlg.Filter = "Strategy files (*.IQ)|*.IQ|" + "All files (*.*)|*.*"; openFileDlg.Multiselect = true; // Launch OpenFileDialog by calling ShowDialog method Nullable <bool> result = openFileDlg.ShowDialog(); // Get the selected file name and display in a TextBox. // Load content of file in a TextBlock if (result == true) { //directoryTextBox.Text = openFileDlg.FileName; directories = openFileDlg.FileNames; //get current directory (not full file directory, just folder) pacDirectory = directories[0].Substring(0, directories[0].LastIndexOf("\\") + 1) + "PAC Sheets\\"; //TextBlock1.Text = System.IO.File.ReadAllText(openFileDlg.FileName); for (int d = 0; d < directories.Length; d++) { directoriesTextBox.Text = directoriesTextBox.Text + directories[d] + "\n"; MyScrollViewer.ScrollToBottom(); Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Background, (Action)(() => { })); } createButton.IsEnabled = true; } else { createButton.IsEnabled = false; } }
private void ThumbViewport_DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e) { var smallImgWidth = SmallImage.ActualWidth; var smallImgHeight = SmallImage.ActualHeight; MyScrollViewer.ScrollToHorizontalOffset( MyScrollViewer.HorizontalOffset + (e.HorizontalChange * MyScrollViewer.ExtentWidth / smallImgWidth)); MyScrollViewer.ScrollToVerticalOffset( MyScrollViewer.VerticalOffset + (e.VerticalChange * MyScrollViewer.ExtentHeight / smallImgHeight)); //Canvasの外に出ないように var setLeft = Canvas.GetLeft(ThumbViewport) + e.HorizontalChange; var setTop = Canvas.GetTop(ThumbViewport) + e.VerticalChange; var right = setLeft + ThumbViewport.ActualWidth; var bottom = setTop + ThumbViewport.ActualHeight; if (0 < setLeft && 0 < setTop && right < smallImgWidth && bottom < smallImgHeight) { Canvas.SetLeft(ThumbViewport, setLeft); Canvas.SetTop(ThumbViewport, setTop); } }
public void AddString(string nuString) { //case : new block if (currentSb == null) { //create new block and hold it. currentSb = new StringBuilder(); Dispatcher.Invoke(new Action(() => { currentTextBox = new TextBox(); currentTextBox.BorderBrush = Brushes.Red; currentTextBox.BorderThickness = new Thickness(2); MainStackPanel.Children.Add(currentTextBox); })); } //StringBuilder is for non-ui-process. currentSb.AppendLine(nuString); //add to current block Dispatcher.Invoke(new Action(() => { currentTextBox.AppendText(nuString); MyScrollViewer.ScrollToEnd(); })); //if current text block is too long... if (currentSb.Length > 8000) { //save strings for other non-ui-process oldStrings.Add(currentSb.ToString()); //unhold current controls currentSb = null; currentTextBox = null; } }
private void MyScrollViewer_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e) { MyScrollViewer.ChangeView(MyScrollViewer.ScrollableWidth / 2, MyScrollViewer.ScrollableHeight / 2, 1, false); }
public MainWindow() { InitializeComponent(); lastClipboardContent = System.Windows.Clipboard.GetText(); db = new DBAdapter(); var mpara = new NMeCab.MeCabParam(); tagger = NMeCab.MeCabTagger.Create(mpara); ClipboardMonitor(); ClipboardNotification.ClipboardUpdate += ClipboardChanged; Left = SettingsManager.WindowPosition.X; Top = SettingsManager.WindowPosition.Y; Width = SettingsManager.WindowSize.Width; Height = SettingsManager.WindowSize.Height; Task.Run(() => { while (true) { Thread.Sleep(50); Dispatcher.Invoke(() => { try { if (lastClipboardContent != System.Windows.Clipboard.GetText()) { lastClipboardContent = System.Windows.Clipboard.GetText(); ClipboardMonitor(); } } catch (Exception ex) { //System.Windows.MessageBox.Show($"Error reading clipboard ({ex.Message})"); } }); if (isMouseOverWindow) { continue; } Dispatcher.Invoke(() => { if (!SettingsManager.MonitorMousePosition) { return; } var maxH = MyScrollViewer.ScrollableHeight; var moveTo = maxH * MousePositionPercentage(); MyScrollViewer.ScrollToVerticalOffset(moveTo); }); } }); }
private void Timer_Tick(object sender, object e) { Rect screenRect = new Rect( MyScrollViewer.HorizontalOffset, MyScrollViewer.VerticalOffset, MyScrollViewer.Width, MyScrollViewer.Height); CompositeTransform ct = Rect.RenderTransform as CompositeTransform; int offset = 10; if (_mousePosition == 1) { MyScrollViewer.ChangeView( MyScrollViewer.HorizontalOffset - offset, MyScrollViewer.VerticalOffset - offset, 1, true); if (screenRect.X != 0) { ct.TranslateX = ct.TranslateX - offset; } if (screenRect.Y != 0) { ct.TranslateY = ct.TranslateY - offset; } } if (_mousePosition == 2) { MyScrollViewer.ChangeView( MyScrollViewer.HorizontalOffset, MyScrollViewer.VerticalOffset - offset, 1, true); if (screenRect.Y != 0) { ct.TranslateY = ct.TranslateY - offset; } } if (_mousePosition == 3) { MyScrollViewer.ChangeView( MyScrollViewer.HorizontalOffset + offset, MyScrollViewer.VerticalOffset - offset, 1, true); if (MyScrollViewer.HorizontalOffset + MyScrollViewer.Width != MyCanvas.Width) { ct.TranslateX = ct.TranslateX + offset; } if (screenRect.Y != 0) { ct.TranslateY = ct.TranslateY - offset; } } if (_mousePosition == 4) { MyScrollViewer.ChangeView( MyScrollViewer.HorizontalOffset - offset, MyScrollViewer.VerticalOffset, 1, true); if (screenRect.X != 0) { ct.TranslateX = ct.TranslateX - offset; } } if (_mousePosition == 5) { } if (_mousePosition == 6) { MyScrollViewer.ChangeView( MyScrollViewer.HorizontalOffset + offset, MyScrollViewer.VerticalOffset, 1, true); if (MyScrollViewer.HorizontalOffset + MyScrollViewer.Width != MyCanvas.Width) { ct.TranslateX = ct.TranslateX + offset; } } if (_mousePosition == 7) { MyScrollViewer.ChangeView( MyScrollViewer.HorizontalOffset - offset, MyScrollViewer.VerticalOffset + offset, 1, true); if (screenRect.X != 0) { ct.TranslateX = ct.TranslateX - offset; } if (MyScrollViewer.VerticalOffset + MyScrollViewer.Height != MyCanvas.Height) { ct.TranslateY = ct.TranslateY + offset; } } if (_mousePosition == 8) { MyScrollViewer.ChangeView( MyScrollViewer.HorizontalOffset, MyScrollViewer.VerticalOffset + offset, 1, true); if (MyScrollViewer.VerticalOffset + MyScrollViewer.Height != MyCanvas.Height) { ct.TranslateY = ct.TranslateY + offset; } } if (_mousePosition == 9) { MyScrollViewer.ChangeView( MyScrollViewer.HorizontalOffset + offset, MyScrollViewer.VerticalOffset + offset, 1, true); if (MyScrollViewer.HorizontalOffset + MyScrollViewer.Width != MyCanvas.Width) { ct.TranslateX = ct.TranslateX + offset; } if (MyScrollViewer.VerticalOffset + MyScrollViewer.Height != MyCanvas.Height) { ct.TranslateY = ct.TranslateY + offset; } } }
private void Window_Loaded(object sender, RoutedEventArgs e) { MyScrollViewer.ScrollToHorizontalOffset(viewModel.BoardWidth / 2 - this.Width / 2); MyScrollViewer.ScrollToVerticalOffset(viewModel.BoardHeight / 2 - this.Height / 2); }
public void ScrollToBottom() { MyScrollViewer.UpdateLayout(); MyScrollViewer.ChangeView(null, double.MaxValue, null); }
protected override void OnNavigatedTo(NavigationEventArgs e) { MyScrollViewer.UpdateLayout(); MyScrollViewer.ChangeView(null, double.MaxValue, null); base.OnNavigatedTo(e); }