как добавить текст в прямоугольник с кодом позади wpf - PullRequest
0 голосов
/ 25 июля 2011

Я хочу добавить текстовый блок или метку внутри прямоугольника, который создается с помощью кода. Кто-нибудь может мне помочь?

  for (int i = 0; i < _RoomX.Count; i++)
        {
            _RoomX[i] = (Convert.ToDouble(_RoomX[i]) * 20).ToString();
            _RoomY[i] = (Convert.ToDouble(_RoomY[i]) * 20).ToString();

            var rectangle = new Rectangle()
            {

                Stroke = Brushes.Black,
                Fill = brush,
                Width = Convert.ToDouble(_RoomX[i]),
                Height = Convert.ToDouble(_RoomY[i]),
                Margin = new Thickness(
                    left: 15,
                    top: 50,
                    right: 0,
                    bottom: 0),
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment = VerticalAlignment.Top

            };
            mainCanvas.Children.Add(rectangle);
        }

1 Ответ

2 голосов
/ 25 июля 2011

прямоугольник скважины не является элементом управления содержимым, он получен из объекта формы ... мы не можем использовать его в качестве панели.

вместо прямоугольника можно использовать границу.

если ваше требование требует Rectangle, тогда вы можете ... создать Grid>, затем добавить прямоугольник в Grid> и создать текстовый блок и добавить его в ту же сетку ... поскольку сетка физически не видна, она появляется как текст, добавленный в прямоугольник ..

Я постараюсь опубликовать образец

Edit: следующий код поможет вам лучше понять его

for (int i = 0; i < _RoomX.Count; i++)
        {
            _RoomX[i] = (Convert.ToDouble(_RoomX[i]) * 20).ToString();
            _RoomY[i] = (Convert.ToDouble(_RoomY[i]) * 20).ToString();

            var rectangle = new Rectangle()
            {

                Stroke = Brushes.Black,
                Fill = brush,
                Width = Convert.ToDouble(_RoomX[i]),
                Height = Convert.ToDouble(_RoomY[i]),
                Margin = new Thickness(
                    left: 15,
                    top: 50,
                    right: 0,
                    bottom: 0),
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment = VerticalAlignment.Top

            };

            Grid grid = new Grid();
            grid.Children.Add(rectangle);
            TextBlock textblock = new TextBlock();
            textblock.Text = "Text to add";
            grid.Children.Add(textblock);

            mainCanvas.Children.Add(grid);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...