Ich entwerfe eine kleine C # -Anwendung und darin befindet sich ein Webbrowser. Ich habe derzeit alle meine Standardeinstellungen auf meinem Computer, z. B. Google Chrome ist mein Standardbrowser. Wenn ich jedoch auf einen Link in meiner Anwendung klicke, um ihn in einem neuen Fenster zu öffnen, wird der Internet Explorer geöffnet. Gibt es eine Möglichkeit, diese Links stattdessen im Standardbrowser zu öffnen? Oder stimmt etwas auf meinem Computer nicht?
Mein Problem ist, dass ich einen Webbrowser in der Anwendung habe. Nehmen Sie also an, Sie gehen zu Google und geben "Stapelüberlauf" ein. Klicken Sie mit der rechten Maustaste auf den ersten Link und klicken Sie auf "In neuem Fenster öffnen". Dieser wird im IE anstelle von Chrome geöffnet. Ist dies etwas, das ich falsch codiert habe, oder ist auf meinem Computer eine Einstellung nicht korrekt?
=== BEARBEITEN ===
Das ist wirklich nervig. Ich bin mir bereits bewusst, dass der Browser IE ist, aber ich hatte es vorher gut funktioniert. Wenn ich auf einen Link geklickt habe, wurde er in Chrom geöffnet. Ich habe damals Sharp Develop verwendet, um die Anwendung zu erstellen, da ich c # express nicht zum Starten bringen konnte. Ich habe eine neue Windows-Installation durchgeführt und da ich in meiner Anwendung nicht zu weit fortgeschritten war, habe ich mich entschlossen, von vorne zu beginnen, und jetzt habe ich dieses Problem. Deshalb bin ich mir nicht sicher, ob es mein Computer ist oder nicht. Warum sollte der IE den gesamten Browser starten, wenn auf einen Link geklickt wird, anstatt einfach den neuen Link im Standardbrowser zu öffnen?
Antworten:
Du kannst einfach schreiben
BEARBEITEN : Das
WebBrowser
Steuerelement ist eine eingebettete Kopie des IE.Daher werden alle darin enthaltenen Links im IE geöffnet.
Um dieses Verhalten zu ändern, können Sie das
Navigating
Ereignis behandeln.quelle
Process.Start(e.Url.ToString())
Für diejenigen, die diese Frage im Dotnet-Kern finden. Ich habe hier eine Lösung gefunden
Code:
quelle
open
Befehl anstelle vonxdg-open
RuntimeInformation.IsOSPlatform(OSPlatform.OSX)
oder wird es unter Linux schon wahr sein?xdg-command
Gibt aber "xdg-open: Befehl nicht gefunden" zurück. Dann habe ich mitopen
Befehl getestet und funktioniert.das sollte dein Problem lösen
quelle
Haben Sie versucht,
Process
wie hier erwähnt: http://msdn.microsoft.com/de-de/library/system.diagnostics.process.aspx ?Du könntest benutzen
quelle
UseShellExecute
Der Standardwert ist true.true
.Process.Start(url)
, wird kein neues Browserfenster geöffnet.Schauen Sie sich das GeckoFX-Steuerelement an .
quelle
Versuchen Sie dies nach alter Schule;)
using: openit ("www.google.com");
quelle
Nachdem ich viel recherchiert habe, habe ich das Gefühl, dass die meisten der gegebenen Antworten nicht mit Dotnet Core funktionieren. 1 .
System.Diagnostics.Process.Start("http://google.com")
; - Funktioniert nicht mit Dotnet Core2. Es wird funktionieren, aber es wird das Öffnen des neuen Fensters blockieren, falls der Standardbrowser Chrome ist
Unten ist die einfachste und funktioniert in allen Szenarien.
quelle
Dies öffnete die Standardeinstellung für mich:
quelle
dotnet core
löst einen Fehler aus, wenn wir verwendenProcess.Start(URL)
. Der folgende Code funktioniert indotnet core
. Sie können stattdessen einen beliebigen Browser hinzufügenChrome
.quelle
In UWP:
quelle
Dynamisch öffnen
quelle
Aktualisieren Sie die Registrierung mit der aktuellen Version von Explorer
@ "Software \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION".
quelle