You can add anything you want in the code.
I usually advise a very general method of solving such problems. If you don't know how to put some control, create some layout, etc., try to do it using the designer first. Test the application to see the results. If this is what you want, locate the auto-generated code and learn how it works.
With WPF, it's a bit trickier to find those auto-generated files, because they are not shown in your Solution Explorer tree view but are created as temporary file. You can use some file search tool (not the one of VS) to find them. Normally, they are put in "obj\Debug" or "obj\Relese" sub-directories relative to your project (more exactly, "obj\$(configuration_name)").
In the simplest case, adding a control looks like this:
ListBox lb = new ListBox();
this.parentPanel.Children.Add(lb);
Above, I assumed that you have some panel of the type derived from
System.Windows.Controls.Panel
you want to use as a parent for other control. See MSDN help on each control to find out what properties should you use to set up desired layout and other features. Again, looking at the auto-generated code is good to see what's involved.
You will need to use exact same techniques you find in your auto-generated code. Only don't use ugly naming of the variables and method designers usually use — such names violate (good) Microsoft naming conventions. Give everything semantically sensible names, without numeric characters and other "automated" dirt.
Good luck,
—SA