2015-01-27 4 views
0

Итак, у меня есть метод в основном классе, который класс Pillar, который создает два прямоугольника и устанавливает их ширину и высоту. Затем я пытаюсь нарисовать их на экране, используя Canvas.SetTop.Рисование прямоугольников на экране в WPF из другого класса

'Main 

'place rectangles 
Canvas.SetTop(pillar.top, 0) 
Canvas.SetBottom(pillar.bottom, 0) 

Canvas.SetLeft(pillar.top, 100) 
Canvas.SetLeft(pillar.bottom, 100) 

И вот столп класс

Class Pillar 
    Property Right As Integer 
    Public top, bottom As Rectangle 
    Private gap As Integer = 60 
    Private _width = 100 
    Private gapPos As Integer 

    Public Sub New() 
     top = New Rectangle 
     bottom = New Rectangle 

     top.Width = _width 
     bottom.Width = _width 

     gapPos = CInt(Math.Ceiling(Rnd() * 80)) + 470 

     top.Height = gapPos - (gap/2) 
     bottom.Height = gapPos - (gap/2) 

     top.Fill = New SolidColorBrush(Color.FromRgb(255, 255, 255)) 
     bottom.Fill = New SolidColorBrush(Color.FromRgb(255, 255, 255)) 
    End Sub 
End Class 

Проблема заключается в том, что прямоугольники не обращала на экране, в то время как программа не приводит к возникновению ошибок.

+0

Проблема заключается в том, что прямоугольники не обращала на экране, в то время как программа не приводит к возникновению ошибок , – tomus

+0

Вы должны отредактировать эту информацию в своем вопросе. –

+0

Добавили ли вы прямоугольник в PaintCanvas? –

ответ

0

Canvas.SetTop/Bottom/Left/Right() не рисует что-то на экране, а позиционирует элементы, которые уже показаны на экране. Таким образом, перед вызовом

Canvas.SetTop(pillar.top, 0) 

попробовать добавить прямоугольника в на холсте, например, вызвав

myCanvas.Children.Add(pillar.top) 
+0

Спасибо, полностью забыл добавить на холст – tomus

+0

Рад помочь! Если он решит проблему, можете ли вы пометить ответ как принятый? – andreask

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