Sto creando Dynamic Rectangle e aggiungo StackPanel
. Devo aggiungere del testo a ciascun rettangolo. Come lo posso fare?È necessario aggiungere del testo al rettangolo
risposta
Rectangle non ha alcun contenuto bambino, quindi sarà necessario mettere entrambi i controlli all'interno di un altro pannello, come ad esempio una griglia:
<Grid>
<Rectangle Stroke="Red" Fill="Blue"/>
<TextBlock>some text</TextBlock>
</Grid>
È inoltre possibile utilizzare un controllo di frontiera, che si terrà un singolo bambino e disegnare un rettangolo intorno ad esso:
<Border BorderBrush="Red" BorderThickness="1" Background="Blue">
<TextBlock>some text</TextBlock>
</Border>
si dice "rettangolo dinamico", così suona come si sta facendo questo nel codice. L'equivalente C# sarebbe simile a questa:
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" },
});
Ma se volete un elenco dinamico di rettangoli, probabilmente si dovrebbe utilizzare un ItemsControl:
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Red" BorderThickness="1" Background="Blue">
<TextBlock Text="{Binding Text}"/>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Se si imposta il DataContext ad una lista di oggetti , questo XAML creerà un bordo con un TextBlock per ognuno con il testo impostato sulla proprietà Text sull'oggetto.
Prima di tutto è possibile farlo, ma non aggiungendo il controllo. E c'è una buona ragione per farlo, per il rendering hardware ad alta velocità. È possibile creare un pennello speciale da un elemento dell'interfaccia utente che si memorizza nella cache nell'hardware e riempire il rettangolo con questo hardware ed è estremamente veloce. Mostrerò il codice solo perché è l'esempio che ho di seguito
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. Riempimento del testo all'interno del rettangolo
- 2. È necessario aggiungere una ricerca al sito HTML statico
- 3. android - non è mai necessario aggiungere frammenti al manifest
- 4. ImageMagick - Testo nel rettangolo
- 5. UIAlertController arrotondato rettangolo di testo
- 6. Come calcolare l'altezza del rettangolo di testo da una NSString?
- 7. aggiungere testo al campo di input
- 8. È necessario aggiungere reset.css per bootstrap 3?
- 9. Vincolare il rettangolo all'interno del rettangolo
- 10. Disegna il testo al centro
- 11. Ruota rettangolo intorno al centro
- 12. Utilizzando SVG, è possibile aggiungere del testo al centro di un tracciato e allinearlo orizzontalmente?
- 13. Disegno rettangolo su picturebox - come limitare l'area del rettangolo?
- 14. Assegnazione del colore del testo al testo in edittext
- 15. Android - In acquisto di app - è necessario aggiungere l'autorizzazione FATTURAZIONE al proprio APK
- 16. È necessario aggiungere un @ davanti a un nome SqlParameter?
- 17. Riquadro di contenimento rispetto al rettangolo
- 18. Aggiungere il testo prima del prezzo
- 19. java ruotano rettangolo intorno al centro
- 20. Ridimensiona e ridimensiona graffetta al rettangolo
- 21. Il CSS può aggiungere automaticamente del testo?
- 22. Ruota il rettangolo attorno al suo centro
- 23. Struttura dati più efficiente per aggiungere stili al testo
- 24. Vim equivalente del rettangolo aperto di Emacs
- 25. È necessario aggiungere il selettore col-md in Bootstrap 3?
- 26. È necessario aggiungere un'intestazione personalizzata per richiedere il test dell'unità
- 27. È necessario aggiungere cellspacing = "0" cellpadding = "0" in ?
- 28. È necessario dichiarare array PHP prima di aggiungere valori con []?
- 29. È necessario aggiungere un riferimento all'assembly mscorlib, versione = 4.0.0
- 30. È necessario aggiungere org.apache.catalina.startup.VersionLoggerListener per tomcat 8 server.xml?
Potrebbe fornire alcuni frammenti di codice per Binding del datacontext di Itemcontrol. – Lalchand