/// <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); }
/// <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); }
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); }; } }
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; }
//обработчик события окончания сортировки 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(); //источнику указываем результат отрисовки графика }); }
private void ButtonOnLeave(GraphicContainer graphicGrid) { graphicGrid.SetColor(Colour.DarkGray, Colour.Black); }
private void ButtonOnEnter(GraphicContainer graphicGrid) { graphicGrid.SetColor(Colour.White, Colour.Black); }
public ImageContainer(GraphicContainer container) : base(container) { }