WPF应用程序中的以下代码创建一个超链接,该超链接的外观和行为类似于超链接,但在单击时不执行任何操作。
我必须更改什么,以便当我单击它时,它打开默认浏览器并转到指定的URL?
alt text http://www.deviantsart.com/upload/4fbnq2.png
XAML:
<Window x:Class="TestLink238492.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<StackPanel Margin="10">
<ContentControl x:Name="MainArea"/>
</StackPanel>
</Window>
代码背后:
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
namespace TestLink238492
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
FlowDocumentScrollViewer fdsv = new FlowDocumentScrollViewer();
FlowDocument doc = new FlowDocument();
fdsv.Document = doc;
fdsv.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden;
doc.PagePadding = new Thickness(0);
Paragraph paragraph = new Paragraph();
doc.Blocks.Add(paragraph);
Run run = new Run("this is flow document text and ");
paragraph.Inlines.Add(run);
Run run2 = new Run("this is a hyperlink");
Hyperlink hlink = new Hyperlink(run2);
hlink.NavigateUri = new Uri("http://www.google.com");
paragraph.Inlines.Add(hlink);
StackPanel sp = new StackPanel();
TextBlock tb = new TextBlock();
tb.Text = "this is textblock text";
sp.Children.Add(tb);
sp.Children.Add(fdsv);
MainArea.Content = sp;
}
}
}
3条答案
按热度按时间bvjxkvbb1#
我找到了这个问题的答案,你必须添加RequestNavigate并自己处理:
k10s72fa2#
找到解决这个波马的办法了。下面的代码部分应该被添加到你的类中你需要做的地方。或者,如果需要从多个文件中获取它,可以将其放在某个静态类中。我稍微调整了一下。
你可以在代码中这样调用它:
所有HTMLConverter的内容都可以在以下网站找到:http://blogs.msdn.com/b/wpfsdk/archive/2006/05/25/606317.aspx如果您需要将HTML转换为Flow Document。不过,这稍微超出了本主题的范围。
zd287kbt3#
这个答案对我来说并不太有效。如本期所述,需要包含
UseShellExecute = true
。因此,RequestNavigateEventHandler
看起来像: