コード例 #1
0
        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.";
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
                }
            }
        }
コード例 #7
0
 private void MyScrollViewer_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
 {
     if (MyScrollViewer.ScrollableHeight == MyScrollViewer.VerticalOffset)
     {
         Show(Global.Index_Start);                 //显示图片
         MyScrollViewer.ScrollToVerticalOffset(0); //滚动条复位
     }
 }
コード例 #8
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);
        }
コード例 #9
0
 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;
     }
 }
コード例 #10
0
        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();
        }
コード例 #11
0
        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);
            }
        }
コード例 #12
0
        //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();
        }
コード例 #13
0
 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);
         }
     }
 }
コード例 #14
0
        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);
        }
コード例 #15
0
        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;
            }
        }
コード例 #16
0
        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);
            }
        }
コード例 #17
0
        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;
            }
        }
コード例 #18
0
 private void MyScrollViewer_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
 {
     MyScrollViewer.ChangeView(MyScrollViewer.ScrollableWidth / 2, MyScrollViewer.ScrollableHeight / 2, 1, false);
 }
コード例 #19
0
        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);
                    });
                }
            });
        }
コード例 #20
0
ファイル: MainPage.xaml.cs プロジェクト: jcsbmwxyha/UWP
        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;
                }
            }
        }
コード例 #21
0
 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
     MyScrollViewer.ScrollToHorizontalOffset(viewModel.BoardWidth / 2 - this.Width / 2);
     MyScrollViewer.ScrollToVerticalOffset(viewModel.BoardHeight / 2 - this.Height / 2);
 }
コード例 #22
0
 public void ScrollToBottom()
 {
     MyScrollViewer.UpdateLayout();
     MyScrollViewer.ChangeView(null, double.MaxValue, null);
 }
コード例 #23
0
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     MyScrollViewer.UpdateLayout();
     MyScrollViewer.ChangeView(null, double.MaxValue, null);
     base.OnNavigatedTo(e);
 }