Load Items into Canvas in WPF application

Hi,

I am using the code below to load Items into my Canvas. This works fine, but it throws out the items (as you can see) in random. I want to be able to load the items in a list form, but do not want to use a list box. How will I be able to load them next to each other from left to right and then when the Canvas gets full to continue in the row below?

Thanks
Private Function GetRandomDist(ByVal limit As Double) As Double
Return rand.NextDouble() * limit
End Function
 
Private Sub LoadItem(ByVal PictureName As String _
                         , ByVal ItemLookupCode As String _
                         , ByVal ExtendedDescription As String _
                         , ByVal Number As Integer)
 
Dim mycontrol As New ItemControl()
mycontrol.SetValue(Canvas.LeftProperty, GetRandomDist(ItemAddCanvas.ActualWidth + 450))
mycontrol.SetValue(Canvas.TopProperty, GetRandomDist(ItemAddCanvas.ActualHeight + 450))
mycontrol.EXTDesc.Text = ExtendedDescription
mycontrol.ItemCode.Content = ItemLookupCode
mycontrol.ItemImage.Source = New BitmapImage(New Uri(PictureName))
ItemAddCanvas.Children.Add(mycontrol)
End Sub

Open in new window

ALawrence007Asked:
Who is Participating?
 
adler77Connect With a Mentor Commented:
You might want to use a WrapPanel instead of a Canvas--it will let you add items to it and then automatically wrap to the next "line" as needed. You would also have the benefit of it auto-arranging if the size of your panel changes.
0
 
ALawrence007Author Commented:
Any experts that might be able to help?
0
 
ALawrence007Author Commented:
I had this open for a while and this actually solved my issue.
Thanks adler77
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.