Я уверен, что это потому, что изображение находится в той же строке, что и контактная информация. Я думаю, что добавление изображения в строку с компанией и ролью (между вторыми <tr>
тегами) решит это.
//в SharePoint я добавил Маленький код, чтобы сказать SP запускать скрипт после того, как каждая часть будет загружена. Работы как очарование :)
//РЕДАКТИРОВАНИЕ
или еще лучше форум Silverlight рекомендует сделать это: Форум Silverlight
<div id="silverlightObjDiv">
<!-- silverlight object here -->
</div>
<script>
_spBodyOnLoadFunctionNames.push ('setupElement');
function setupElement ()
{
document.getElementById('silverlightObjDiv').oncontextmenu = disableRightClick;
}
function disableRightClick(e) {
if (!e) e = window.event;
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
}
</script>
Как отметил Даин, в Silverlight 4 вы можете сделать это легко:
Сделать элемент управления безоконным:
<param name="windowless" value="true" />
Поймать правый клик в корневом элементе управления сеткой/разметкой:
public MainPage()
{
LayoutRoot.MouseRightButtonDown += (s, e) => { e.Handled = true; };
}
Загвоздка
В Firefox и Chrome вам придется выбирать между контекстным меню и возможностью прокрутки с помощью колеса мыши. К сожалению, вы не можете иметь и то, и другое. Надеюсь, это изменится в Silverlight 5.
В Silverlight 4 вы можете сделать это на C#, не возясь с HTML и не завися от него.
В примере ниже показано, как реализовать правый клик, чтобы он действительно использовался элементом управления, но вы можете просто создать clicktrap, если вам нужно только отключить его.
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
// wire up the event handlers for the event on a particular UIElement
ChangingRectangle.MouseRightButtonDown += new MouseButtonEventHandler(RectangleContextDown);
ChangingRectangle.MouseRightButtonUp += new MouseButtonEventHandler(RectangleContextUp);
}
void RectangleContextUp(object sender, MouseButtonEventArgs e)
{
// create custom context menu control and show it.
ColorChangeContextMenu contextMenu = new ColorChangeContextMenu(ChangingRectangle);
contextMenu.Show(e.GetPosition(LayoutRoot));
}
void RectangleContextDown(object sender, MouseButtonEventArgs e)
{
// handle the event so the default context menu is hidden
e.Handled = true;
}
}