示例#1
0
        private void SetupPickNumber()
        {
            RECT pickRect = DraftScreen.GetRectForPickNumber();

            TextBox txtNumber = FindName("DraftPickNumber") as TextBox;

            if (txtNumber == null)
            {
                txtNumber = new TextBox
                {
                    Name            = "DraftPickNumber",
                    Text            = "Loading..",
                    Width           = 400,
                    Height          = 40,
                    Background      = new SolidColorBrush(Colors.Transparent),
                    Foreground      = new SolidColorBrush(Colors.White),
                    CaretBrush      = new SolidColorBrush(Colors.Transparent),
                    BorderThickness = new Thickness(0),
                    FontSize        = 20
                };
                Canvas.SetLeft(txtNumber, pickRect.Left);
                Canvas.SetTop(txtNumber, pickRect.Top - 40);
                MainCanvas.Children.Add(txtNumber);
                MainCanvas.RegisterName(txtNumber.Name, txtNumber);
            }

            Task.Run(() =>
            {
                while (!isPaused)
                {
                    bool isWindowNormal = ProcessWindowManager.Instance.IsWindowStateNormal();
                    if (isWindowNormal)
                    {
                        var pickNumber = CardRecognitionManager.Instance.ReadPickNumber(ProcessWindowManager.Instance.GetWindowAreaBitmap(DraftScreen.GetRectForPickNumber(isDoubleDigitsPickNumber), false));
                        if (pickNumber == null || !pickNumber.StartsWith("Card"))
                        {
                            isDoubleDigitsPickNumber = !isDoubleDigitsPickNumber;
                            pickNumber = CardRecognitionManager.Instance.ReadPickNumber(ProcessWindowManager.Instance.GetWindowAreaBitmap(DraftScreen.GetRectForPickNumber(isDoubleDigitsPickNumber), false));
                        }

                        if (pickNumber == null)
                        {
                            continue;
                        }

                        try
                        {
                            Application.Current.Dispatcher.BeginInvoke(
                                DispatcherPriority.Normal,
                                (Action)(() => OnNewPickNumber(pickNumber, txtNumber)));
                            Thread.Sleep(1000);
                        } catch { /*do nothing*/ }
                    }
                }
            });
        }