If you're looking to add controls on the VEMap class, you can utilize the dedicated method VEMap.AddControl(). A good reference for this is available at:
http://msdn.microsoft.com/en-us/library/bb412435.aspx
One interesting aspect shown in the official example is:
function AddControl()
{
var el = document.createElement("div");
el.id = "myControl" + i;
el.style.top = 100 + (i * 10);
el.style.left = 100 + (i * 10);
el.style.border = "2px solid black";
el.style.background = "White";
el.innerHTML = el.id;
map.AddControl(el);
}
Alternatively, you can manipulate the corresponding DOM element of the dashboard to achieve a similar outcome. Check out Chris' blog post for more details:
// Simple Method to Add a Custom Button to the NavBar using jQuery
var addNavButton = function (mapElement, content, onclick) {
$(mapElement).find('.NavBar_typeButtonContainer').append(
// Add a Separator between this button and any existing buttons
$('<span>').addClass('NavBar_separator')
).append(
// Add the Custom Button itself
$('<a>').attr('href', '#').addClass('NavBar_button').
append($('<span>').html(content).click(onclick))
);
};
// Use setTimeout to load Custom NavBar button if you are adding
// the button immediatly after instantiating the map.
// Timeout is needed since Bing Maps 7 doesn't currently have
// any kind of "onload" event to handle.
window.setTimeout(function () {
// Add Custom Button to NavBar
addNavButton(
document.getElementById('myMap'), // <- Maps DIV
'Click Me', // <- Content of Button - You can put HTML in here if you want
function () { // <- Method to call during buttons Click event
alert('You Clicked Me!');
}
);
}, 100);