Отключите щелчок правой кнопкой в Silverlight

Я уверен, что это потому, что изображение находится в той же строке, что и контактная информация. Я думаю, что добавление изображения в строку с компанией и ролью (между вторыми <tr> тегами) решит это.

8
задан Jeremy 10 February 2009 в 16:20
поделиться

3 ответа

//в 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>
8
ответ дан 5 December 2019 в 12:13
поделиться

Как отметил Даин, в Silverlight 4 вы можете сделать это легко:

Сделать элемент управления безоконным:

<param name="windowless" value="true" />

Поймать правый клик в корневом элементе управления сеткой/разметкой:

public MainPage()
{
    LayoutRoot.MouseRightButtonDown += (s, e) => { e.Handled = true; };
}

Загвоздка
В Firefox и Chrome вам придется выбирать между контекстным меню и возможностью прокрутки с помощью колеса мыши. К сожалению, вы не можете иметь и то, и другое. Надеюсь, это изменится в Silverlight 5.

4
ответ дан 5 December 2019 в 12:13
поделиться

В 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;
     }
 }

Ссылка: http://timheuer.com/blog/archive/2009/11/18/whats-new-in-silverlight-4-complete-guide-new-features.aspx#rightclick

2
ответ дан 5 December 2019 в 12:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: