Я использую GridView для отображения моего макета. К этому GridView я вручную добавляю некоторые RowDefinitions и в этом RowDefinitions я добавляю 1 холст, содержащий 2 прямоугольника:
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++;
}
}
Холст шириной 200 пикселей и высотой 30 пикселей. Оба прямоугольника точно заполняют холст. Теперь я хочу добавить текст поверх этих прямоугольников. Но я не знаю, как долго текст. Однако я хочу, чтобы текст всегда печатался в эти 200 пикселей. Как мне этого добиться?