2013-06-17 3 views
0

У меня есть эта функция, которая просто рисует эллипс и помещает его на данной сеткеРисование эллипса в Silverlight - неправильное размещение

public void drawEllipse(double top, double left, double height, double width, Grid grid) 
    { 
     Ellipse ellipse = new Ellipse(); 
     ellipse.Height = height; 
     ellipse.Width = width; 
     SolidColorBrush brush = new SolidColorBrush(); 
     brush.Color = Colors.Black; 
     ellipse.Stroke = brush; 
     ellipse.Fill = brush; 
     Canvas.SetTop(ellipse, top); 
     Canvas.SetLeft(ellipse, left); 
     grid.Children.Add(ellipse); 
    } 

Однако, по какой-то причине, он хочет, чтобы поместить эллипс в единственный центра сетки или (учитывая аргументы четвертого квадранта) четвертого квадранта сетки.

Я что-то не так?

ответ

1

Вы добавляете свой эллипс в элемент управления Grid, но вы устанавливаете Canvas.Top и Canvas.Left. Без эллипса, фактически находящегося на Canvas, эти два свойства ничего не делают. Либо добавьте Canvas и используйте Canvas.Children.Add вместо Grid.Children.Add, либо измените свои Canvas.SetTop и Canvas.SetLeft звонки с звонками Grid.SetRow и Grid.SetColumn.

+0

Ahh, я создаю строки аналогичным образом, и я использую 'Canvas.SetZIndex', который работает, хотя я добавляю строки в сетку. – user2084666

+0

'SetZIndex' фактически находится на' Panel', суперклассе 'Canvas'. Когда вы кодируете 'Canvas.SetZIndex', вы на самом деле вызываете' Panel.SetZIndex'. –

+0

О! Ну, я просто изменил сетку на холст, и теперь это работает, спасибо! – user2084666

Смежные вопросы