Exemplo n.º 1
0
 /// <summary>
 /// 构造方法
 /// </summary>
 /// <param name="manager">UI管理器</param>
 /// <param name="graphicGrid">图形网格</param>
 public Button(UIManager manager, GraphicGrid graphicGrid)
 {
     this.manager = manager;
     manager.AddUIObject(this);
     positions = new HashSet <Vector2>();
     positions.Add(graphicGrid.Position);
     GraphicContainer = new GraphicContainer(graphicGrid);
 }
Exemplo n.º 2
0
 /// <summary>
 /// 构造方法
 /// </summary>
 /// <param name="manager">UI管理器</param>
 /// <param name="graphicGrids">图形网格集合</param>
 public Button(UIManager manager, List <GraphicGrid> graphicGrids)
 {
     this.manager = manager;
     manager.AddUIObject(this);
     positions = new HashSet <Vector2>();
     foreach (GraphicGrid item in graphicGrids)
     {
         positions.Add(item.Position);
     }
     GraphicContainer = new GraphicContainer(graphicGrids);
 }
Exemplo n.º 3
0
        private void Start()
        {
            manager = new UIManager(graphics);
            string[] buttonTexts = new string[]
            {
                "开启Host模式",
                "开启Client模式",
                "开启Server模式"
            };
            int index = 0;

            foreach (string item in buttonTexts)
            {
                List <GraphicGrid> graphicGrids = graphics.CreatGridByString(new Vector2(0, index), item,
                                                                             Colour.DarkGray, Colour.Black);
                GraphicContainer container = new GraphicContainer(graphicGrids);

                Button button = new Button(manager, graphicGrids);
                button.OnEnter += () => ButtonOnEnter(container);
                button.OnLeave += () => ButtonOnLeave(container);
                button.OnClick += () => ButtonOnClick(container, index);

                index++;
            }

            chessboard = new Chessboard
                         (
                graphics, manager, chessboardPos,
                CHESSBOARD_WIDTH, CHESSBOARD_HEIGHT, STEP_TO_WIN,
                ChessboardForeColor, ChessboardBackColor
                         );
            //注册方法
            foreach (Chess item in chessboard.Chesses)
            {
                item.Button.OnClick += () =>
                {
                    ChessOnClick(item.GraphicGrid, item.PositionOnChessboard);
                };
                item.Button.OnEnter += () =>
                {
                    ChessOnEnter(item.GraphicGrid);
                };
                item.Button.OnLeave += () =>
                {
                    ChessOnLeave(item.GraphicGrid);
                };
            }
        }
Exemplo n.º 4
0
        private void ButtonOnClick(GraphicContainer graphicGrid, int index)
        {
            switch (index)
            {
            case 0:
                NetworkRole = NetworkRole.Host;
                break;

            case 1:
                NetworkRole = NetworkRole.Client;
                break;

            case 2:
                NetworkRole = NetworkRole.Server;
                break;
            }
            Playing = true;
        }
Exemplo n.º 5
0
        //обработчик события окончания сортировки
        private void Sorting_OnSortingEndedEvent(InfoCalculating obj)
        {
            Dispatcher.InvokeAsync(() =>
            {
                //не советую использовать большие объемы списка для сортировки!!!

                ResultInfoCalculatingPanel.DataContext = obj;                     //выводим результат сортировки в ResultInfoCalculatingPanel
                GraphicContainer graphicContainer      = new GraphicContainer();  //создаем контэйнер для графиков
                Graphic graphic1 = new Graphic(Container.Length);                 //этот график в итоге будет представлять из себя прямую
                //еще один пример использования params, здесь мы указываем,
                graphic1.AddRangeXCoordinates(0, obj.CountElements);              //следовательно здесь мы переадаем 2 точки по оси Х
                graphic1.AddRangeYCoordinates(0, obj.TimeSorting);                //а здесь по оси У, чтобы построить прямую, необходимо 2 точки минимум

                ParabolaGraphic parabola = new ParabolaGraphic(Container.Length); //создаем параболу
                parabola.Fill();                                                  //заполняем значениями
                graphicContainer.ListGraphics.Add(graphic1);                      //добавялем в список созданный график

                graphicContainer.ListGraphics.Add(parabola);                      //добавляем прямую
                GraphImage.Source = graphicContainer.DrawingGraphic();            //источнику указываем результат отрисовки графика
            });
        }
Exemplo n.º 6
0
 private void ButtonOnLeave(GraphicContainer graphicGrid)
 {
     graphicGrid.SetColor(Colour.DarkGray, Colour.Black);
 }
Exemplo n.º 7
0
 private void ButtonOnEnter(GraphicContainer graphicGrid)
 {
     graphicGrid.SetColor(Colour.White, Colour.Black);
 }
Exemplo n.º 8
0
 public ImageContainer(GraphicContainer container) : base(container)
 {
 }