C# 使用URL WPF打开浏览器
如何通过超链接打开外部浏览器,在浏览器中它将是target=''u top' WPF netcore 3.1应用程序中的代码是什么C# 使用URL WPF打开浏览器,c#,wpf,browser,.net-core-3.1,C#,Wpf,Browser,.net Core 3.1,如何通过超链接打开外部浏览器,在浏览器中它将是target=''u top' WPF netcore 3.1应用程序中的代码是什么 使用命令参数 <TextBlock> <Hyperlink CommandParameter="{Binding ExternalURL}" Command="{Binding NavHomeViewCommand}" >Open in Browser ... </Hyperlink>
<TextBlock>
<Hyperlink CommandParameter="{Binding ExternalURL}"
Command="{Binding NavHomeViewCommand}" >Open in Browser ...
</Hyperlink>
</TextBlock>
private void NavHomeView(object ID)
{
if(obj is string destinationurl)
System.Diagnostics.Process.Start("https://google.com"); //???????
}
System.Diagnostics.Process.Start(@"C:\Program Files (x86)\Google\Chrome\Application\Chrome.exe", "https://www.google.fr");
或者如果您不知道navigator的.exe文件的路径
var UrlExterne = "https://www.google.fr";
var filetemp = $"{Path.GetTempFileName()}.url";
try
{
using (var sw = new StreamWriter(filetemp))
{
sw.WriteLine("[InternetShortcut]");
sw.WriteLine($"URL={UrlExterne}");
sw.Close();
}
System.Diagnostics.Process.Start(filetemp);
}
finally
{
if(File.Exists(filetemp))
File.Delete(filetemp);
}
使用指定URL打开Windows OS级别默认浏览器的解决方案。推荐途径: 旧版: 打开静默CMD提示符并打开Windows OS默认浏览器的解决方案:
private void NavHomeView(object ID)
{
//return;
if (IDis string destinationurl)
{
var link = new Uri(destinationurl);
var psi = new ProcessStartInfo
{
FileName = "cmd",
WindowStyle = ProcessWindowStyle.Hidden,
UseShellExecute = false,
CreateNoWindow = true,
Arguments = $"/c start {link.AbsoluteUri}"
};
Process.Start(psi);
...
但是,如果您的目的是使用MSIX打包项目类型打包应用程序并将其放入Windows应用商店,那么您将需要使用CMD.EXE。看看这是否解决了您的问题。netcore3.1不是您的日常WPF“重复”问题中的一个答案有效。经过多次尝试和错误后,产生的“hack”是:System.Diagnostics.Process.Start(“cmd”、“/C Start”+”+destinationurl);我会重新讨论这个问题,你可以自己回答,你也可以给这个贴上标签。netcore 3.1
var UrlExterne = "https://www.google.fr";
var filetemp = $"{Path.GetTempFileName()}.url";
try
{
using (var sw = new StreamWriter(filetemp))
{
sw.WriteLine("[InternetShortcut]");
sw.WriteLine($"URL={UrlExterne}");
sw.Close();
}
System.Diagnostics.Process.Start(filetemp);
}
finally
{
if(File.Exists(filetemp))
File.Delete(filetemp);
}
var destinationurl = "https://www.bing.com/";
var sInfo = new System.Diagnostics.ProcessStartInfo(destinationurl)
{
UseShellExecute = true,
};
System.Diagnostics.Process.Start(sInfo);
private void NavHomeView(object ID)
{
//return;
if (IDis string destinationurl)
{
var link = new Uri(destinationurl);
var psi = new ProcessStartInfo
{
FileName = "cmd",
WindowStyle = ProcessWindowStyle.Hidden,
UseShellExecute = false,
CreateNoWindow = true,
Arguments = $"/c start {link.AbsoluteUri}"
};
Process.Start(psi);
...