Я создаю динамический прямоугольник и добавляю его в StackPanel
. Мне нужно добавить текст в каждый прямоугольник. Как я могу это сделать?Нужно добавить текст в прямоугольник
ответ
Прямоугольник не имеет никакого содержания ребенка, так что вам нужно будет поставить как контроль внутри другой панели, такие как сетка:
<Grid>
<Rectangle Stroke="Red" Fill="Blue"/>
<TextBlock>some text</TextBlock>
</Grid>
Вы можете также использовать Пограничный контроль, который будет принимать один ребенок и нарисовать прямоугольник вокруг него:
<Border BorderBrush="Red" BorderThickness="1" Background="Blue">
<TextBlock>some text</TextBlock>
</Border>
вы говорите, что «динамический прямоугольник», так что это звучит, как вы делаете это в коде. Эквивалент C# будет выглядеть примерно так:
var grid = new Grid();
grid.Children.Add(new Rectangle() { Stroke = Brushes.Red, Fill = Brushes.Blue });
grid.Children.Add(new TextBlock() { Text = "some text" });
panel.Children.Add(grid);
// or
panel.Children.Add(new Border()
{
BorderBrush = Brushes.Red,
BorderThickness = new Thickness(1),
Background = Brushes.Blue,
Child = new TextBlock() { Text = "some text" },
});
Но если вы хотите динамический список прямоугольников, вы, вероятно, следует использовать ItemsControl:
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Red" BorderThickness="1" Background="Blue">
<TextBlock Text="{Binding Text}"/>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Если установить DataContext в список объектов , этот XAML создаст Border с TextBlock для каждого из них с текстом, установленным в свойство Text на объекте.
Прежде всего, вы можете сделать это, но не добавив контроль. И для этого есть очень веская причина для высокоскоростной аппаратной рендеринга. Вы можете создать специальную кисть из элемента пользовательского интерфейса, который кэширует себя в аппаратном обеспечении и заполняет прямоугольник этим оборудованием, и это очень быстро. Я просто покажу код позади, потому что это пример, который у меня есть
Rectangle r = new Rectangle();
r.Stroke = Brushes.Blue;
r.StrokeThickness = 5;
r.SetValue(Grid.ColumnProperty, 1);
r.VerticalAlignment = VerticalAlignment.Top;
r.HorizontalAlignment = HorizontalAlignment.Left;
r.Margin = new Thickness(0);
r.Width = 200;
r.Height = 200;
r.RenderTransform = new TranslateTransform(100, 100);
TextBlock TB = new TextBlock();
TB.Text = "Some Text to fill";
//The next two magical lines create a special brush that contains a bitmap rendering of the UI element that can then be used like any other brush and its in hardware and is almost the text book example for utilizing all hardware rending performances in WPF unleashed 4.5
BitmapCacheBrush bcb = new BitmapCacheBrush(TB);
r.Fill = bcb;
MyCanvas.Children.Add(r);
- 1. Как добавить текст в прямоугольник pygame
- 2. Как добавить текст в прямоугольник в SVG?
- 3. Нужно добавить текст в JFrame
- 4. Добавить прямоугольник в ListBox
- 5. Как добавить прозрачный прямоугольник в прямоугольник (график)?
- 6. Добавить прямоугольник в highchart
- 7. Добавить цвет в прямоугольник
- 8. Добавить метку или текст в 3D Прямоугольник java
- 9. Fabric.js текст клипа в прямоугольник
- 10. Как добавить текст в прямоугольник PdfContentByte, используя itextsharp?
- 11. Группируйте каждый прямоугольник и текст в D3
- 12. android программно добавить прямоугольник в
- 13. Добавить гиперссылку Xaml в прямоугольник
- 14. Как добавить прямоугольник в панель?
- 15. Добавить прямоугольник в pdfpcell itextsharp
- 16. Нужно добавить текст с помощью адаптера
- 17. Добавить прямоугольник по щелчку
- 18. Python ReportLab добавить прямоугольник
- 19. iText Прямоугольник, как установить цвет с помощью setBorderColorxxx | как добавить текст Прямоугольник
- 20. Как добавить закругленный прямоугольник toggle_switch в android?
- 21. обертывание текст, чтобы вписаться в прямоугольник: Raphael
- 22. Найти прямоугольник в изображении, содержащего определенный текст
- 23. Как написать текст на прямоугольник в J2ME
- 24. Прямоугольник DataTrigger Fill переплетены в TextBlock текст
- 25. Как добавить круги в прямоугольник? UIBezierPath
- 26. В Java, как добавить JLabel в прямоугольник?
- 27. Добавить прямоугольник в stackpanel во время выполнения
- 28. Мне нужно добавить тег в текст пейджера без тега
- 29. Как добавить прямоугольник в PathFigure WPF
- 30. Добавить свечение в базовый прямоугольник Java
Не могли бы вы предоставить некоторые фрагменты кода для привязки Datacontext Itemcontrol. – Lalchand