Wir verwenden Silverlight in einem Kiosk-Szenario. Gibt es eine Möglichkeit, die Rechtsklick-Funktion zu deaktivieren, um den Silverlight-Konfigurationsdialog aufzurufen?Rechtsklick in Silverlight deaktivieren
Antwort
// im SharePoint Ich habe einen kleinen Code hinzugefügt, um SP anzuweisen, das Skript auszuführen, nachdem jedes Teil geladen wurde. Funktioniert wie ein Zauber :)
// EDIT
oder besser noch das Silverlight-Forum empfiehlt Ihnen dies zu tun: Silverlight Forum
<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>
In Silverlight 4 Sie es in C# tun können, ohne das Hantieren mit und abhängig von HTML sein.
Das folgende Beispiel zeigt, wie Sie den Rechtsklick implementieren, um von einem Steuerelement tatsächlich verwendet zu werden. Sie können jedoch nur einen Klick erstellen, wenn Sie nur deaktivieren möchten.
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;
}
}
Danke dain, das ist eine bessere Antwort imo - Als Referenz "ChangingRectangle" ist das x: Name des betreffenden Steuerelements für MainPage.xaml – ghchinoy
Als Dain erwähnt, in Silverlight 4 Sie dies leicht tun können:
die Kontrolle fensterlos Fabrikat:
<param name="windowless" value="true" />
Falle der rechten Maustaste in Ihrem Root-Grid/Layout-Steuerelement:
public MainPage()
{
LayoutRoot.MouseRightButtonDown += (s, e) => { e.Handled = true; };
}
Der Fang
In Firefox und Chrome Sie zwischen mit einem Kontextmenü oder mit Mausrad Scroll-Funktionen zur Auswahl. Leider können Sie nicht beide haben, hoffentlich ändert sich das in Silverlight 5.
Muss die Steuerung fensterlos sein? –
@Niall Ja, es muss den gesamten Bildschirm ausfüllen –
- 1. Rechtsklick ohne JavaScript deaktivieren
- 2. Silverlight Datagrid bei Rechtsklick auswählen
- 3. Kontextmenü deaktivieren (Rechtsklick) mit Javascript
- 4. Deaktivieren Sie die rechte Maustaste "Silverlight" Popup in Comboboxen
- 5. JavaScript: Rechtsklick und Deaktivieren des Menüs nur innerhalb bestimmter Elemente
- 6. Deaktivieren Sie Rechtsklick OHNE eine Alarm-Box (Javascript)
- 7. wpf listview Rechtsklick-Problem
- 8. Fang Rechtsklick AS3
- 9. Rechtsklick in JavaFX?
- 10. Rechtsklick in GWT?
- 11. Rechtsklick MainMenu
- 12. Rechtsklick in Python mit ctypes
- 13. Rechtsklick-Kontextmenü in der Taskleiste
- 14. Rechtsklick in JavaFX für Minesweeper
- 15. Andere Möglichkeiten zum Deaktivieren von Silverlight in IE 7?
- 16. Entfernen von Rechtsklick-Blockern mit jQuery
- 17. Site-spezifisches JavaScript überschreiben Rechtsklick Kontextmenü mit browserspezifischem Rechtsklick Kontextmenü
- 18. Rechtsklick Kontextmenü Position wird geändert bei Rechtsklick auf verschiedene Objekte
- 19. WebBrowser Control - Rechtsklick verhindern
- 20. "Rechtsklick" Tastaturkürzel für Eclipse?
- 21. Drag & Drop Rechtsklick wpf
- 22. jTable Rechtsklick-Popup-Menü
- 23. jQuery Rechtsklick-Kontextmenü Hilfe!
- 24. flex TLF Rechtsklick
- 25. Rechtsklick auf JButton
- 26. UI Automatisierungstests Rechtsklick-Menüs
- 27. autohotkey Strg + Klick = Rechtsklick
- 28. Rechtsklick-Menü unter winforms
- 29. Bukkit - Detect Rechtsklick
- 30. Kopieren und Einfügen in Silverlight
Genius! Vielen Dank. – Jeremy