public Render_MasterControl(Canvas _maincanvas, TensorModel _model)
 {
     this.MainCanvas = _maincanvas;
     this.Model      = _model;
     _maincanvas.Children.Clear();
     LayerRender(Model);
 }
        public void LayerRender(TensorModel _model)
        {
            //Render ten Network
            Label NetworkName = new Label();

            NetworkName.Content    = Model.ModelName;
            NetworkName.Foreground = new SolidColorBrush(Colors.White);
            NetworkName.FontSize   = 28;
            Canvas.SetTop(NetworkName, 0);
            Canvas.SetLeft(NetworkName, MainCanvas.ActualWidth / 2 - 40);
            MainCanvas.Children.Add(NetworkName);

            Line separateLine = new Line();

            separateLine.Stroke          = System.Windows.Media.Brushes.LightSteelBlue;
            separateLine.X1              = MainCanvas.ActualWidth / 2 - 300;
            separateLine.X2              = MainCanvas.ActualWidth / 2 + 300;
            separateLine.Y1              = 40;
            separateLine.Y2              = 40;
            separateLine.StrokeThickness = 3;
            MainCanvas.Children.Add(separateLine);

            // Thu nghiem
            // double Y = 50;
            double X = MainCanvas.ActualWidth / 2;

            GetParent(ref _model.Layers);
            GetChild(ref _model.Layers);

            //foreach (Layer item in _model.Layers)
            //{
            //    var _graphicItem = item.GraphicsNode;
            //    Canvas.SetTop(_graphicItem, Y);
            //    Canvas.SetLeft(_graphicItem, X - _graphicItem.Width / 2);
            //    MainCanvas.Children.Add(_graphicItem);
            //    Y += Offset_Y + _graphicItem.Height;
            //    item.GraphicsNode.CalcAnchorPoint();
            //}

            //ConnectorRender_Control cr = new ConnectorRender_Control(_model.Layers);
            //foreach (Shape connector in cr.ListConnector)
            //{
            //    MainCanvas.Children.Add(connector);
            //}

            int CurrentLevel = 0;

            foreach (Layer _layer in Model.Layers)
            {
                if (_layer.Level == -1)
                {
                    _layer.Level = CurrentLevel++;
                }

                if (_layer.ChildLayer.Count != 0)
                {
                    foreach (Layer _child in _layer.ChildLayer)
                    {
                        if (_child.Level == -1 && _child.ParentLayer[0] == _layer)
                        {
                            _child.Level = CurrentLevel;
                        }
                    }
                    CurrentLevel++;
                }
            }
            SetPosition(CurrentLevel, ref Model.Layers, MainCanvas);
            //MainCanvas.Children.Add(Arrow.DrawLinkArrow(new Point(X, Y), new Point(X, Y + 100)));
        }