Ich verwende eine GridView, um mein Layout anzuzeigen. Zu diesem Gridview hinzufügen i manuell einige RowDefinitions und in diesem RowDefinitions I 1 hinzufügen Leinwand mit 2 Rechtecken:Wie erzwinge ich Text in eine bestimmte Breite?
foreach (Method m in sourceFile.getMethods())
{
if (!m.getName().StartsWith("<") && !m.getName().EndsWith(">"))
{
RowDefinition row = new RowDefinition();
row.Height = GridLength.Auto;
MethodsContainer.RowDefinitions.Add(row);
Canvas c = new Canvas();
c.Width = width;
c.Height = height;
c.Tag = m;
Contacts.AddPreviewContactDownHandler(c, new ContactEventHandler(onContactDown));
Rectangle r1 = new Rectangle();
r1.Height = height;
r1.Width = m.getLoc() * (width/1000);
Canvas.SetLeft(r1, 0);
Canvas.SetLeft(r1, 0);
r1.Fill = Brushes.Red;
Rectangle r2 = new Rectangle();
r2.Height = height;
r2.Width = width - r1.Width;
Canvas.SetTop(r2, 0);
Canvas.SetLeft(r2, r1.Width);
r2.Fill = Brushes.Blue;
c.Children.Add(r1);
c.Children.Add(r2);
Grid.SetRow(c, rowCounter);
MethodsContainer.Children.Add(c);
rowCounter++;
}
}
Die Leinwand ist 200px Breite und 30px Höhe. Beide Rechtecke füllen den Canvas genau. Jetzt möchte ich etwas Text über diese beiden Rechtecke hinzufügen. Aber ich weiß nicht, wie lange der Text ist. Ich möchte jedoch erzwingen, dass der Text immer in diesem 200px gedruckt wird. Wie kann ich das erreichen?
Danke, das ist genau das, was ich brauche! – RoflcoptrException
Sicher, glücklich, es hat funktioniert :) –