我正在創建動態矩形並將其添加到StackPanel
中。我需要爲每個矩形添加文本。我怎樣才能做到這一點?需要將文字添加到矩形
12
A
回答
30
一個Rectangle沒有任何孩子的內容,所以你需要把雙方的控制另一個小組的內部,如網格:
<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:如果您設置的DataContext對象的列表
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Red" BorderThickness="1" Background="Blue">
<TextBlock Text="{Binding Text}"/>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
,此XAML將爲每個文本塊創建一個帶有TextBlock的邊框,並將該文本設置爲該對象上的Text屬性。
1
2
首先你可以做到這一點,但不是通過添加控件。對於高速硬件渲染,有一個很好的理由來做到這一點。您可以從UI元素中創建一個特殊的畫筆,該畫筆可以在硬件中自行緩存,並使用此硬件填充矩形,並且速度非常快。我只會顯示代碼背後,因爲它是我現有的示例
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. d3將文本添加到SVG矩形
- 2. D3將文本添加到矩形中
- 3. GIS:需要將數據添加到一個形狀文件
- 4. 將增長過渡添加到矩形
- 5. 將JButton和矩形添加到JFrame
- 6. 將矩形添加到箭袋圖
- 7. 如何將矩形添加到PathFigure WPF
- 8. 將矩形添加到圖像
- 9. 將顏色添加到矩形
- 10. C#WinForms將名稱添加到矩形?
- 11. 如何將mouseListener添加到graphics2D矩形
- 12. 關於在Java中將矩形添加到矩形的建議
- 13. 將矩形添加到列表中並顯示矩形
- 14. 用戶將文字添加到形狀
- 15. 如何在Android中將矩形形狀添加到矩形形狀
- 16. Java FileHandler將不需要的數字添加到文件名
- 17. 我需要將文本字段中的值添加到android
- 18. 旋轉矩形需要
- 19. D3條形圖需要特別添加箭頭和文字吧
- 20. 如何將文本添加到這些矩形?
- 21. 如何將文本添加到pygame矩形中
- 22. 將標籤或文本添加到3D矩形java
- 23. 使用itext5將文本添加到PDF中的矩形
- 24. PowerPoint宏 - 需要添加矩形和註釋到每個幻燈片
- 25. 需要將javascript添加到heroku
- 26. 我需要將observablecollection添加到observablecollection。
- 27. 需要什麼將knockout.js添加到HotTowel?
- 28. 需要將minSize添加到fitText
- 29. 如何將陰影添加到dc.js條形圖矩形
- 30. 如何將4個按鈕添加到矩形/圓形
你能否提供一些代碼片段來綁定Itemcontrol的Datacontext。 – Lalchand 2010-08-29 17:31:59