我已经看到了一些建议,您可以通过Hyperlink控件将超链接添加到 WPF 应用程序。
Hyperlink
这是我尝试在我的代码中使用它的方式:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="BookmarkWizV2.InfoPanels.Windows.UrlProperties" Title="UrlProperties" Height="754" Width="576"> <Grid> <Grid.RowDefinitions> <RowDefinition></RowDefinition> <RowDefinition Height="40"/> </Grid.RowDefinitions> <Grid> <ScrollViewer ScrollViewer.VerticalScrollBarVisibility="Auto" Grid.RowSpan="2"> <StackPanel > <DockPanel LastChildFill="True" Margin="0,5"> <TextBlock Text="Url:" Margin="5" DockPanel.Dock="Left" VerticalAlignment="Center"/> <TextBox Width="Auto"> <Hyperlink NavigateUri="http://www.google.co.in"> Click here </Hyperlink> </TextBox> </DockPanel > </StackPanel> </ScrollViewer> </Grid> <StackPanel HorizontalAlignment="Right" Orientation="Horizontal" Margin="0,7,2,7" Grid.Row="1" > <Button Margin="0,0,10,0"> <TextBlock Text="Accept" Margin="15,3" /> </Button> <Button Margin="0,0,10,0"> <TextBlock Text="Cancel" Margin="15,3" /> </Button> </StackPanel> </Grid> </Window>
我收到以下错误:
属性“文本”不支持“超链接”类型的值。
我究竟做错了什么?
如果您希望您的应用程序在Web 浏览器中打开链接,您需要添加一个HyperLink并将RequestNavigate事件设置为以编程方式打开 Web 浏览器的函数,并将地址作为参数。
<TextBlock> <Hyperlink NavigateUri="http://www.google.com" RequestNavigate="Hyperlink_RequestNavigate"> Click here </Hyperlink> </TextBlock>
在代码隐藏中,您需要添加与此类似的内容来处理 RequestNavigate 事件:
private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e) { // for .NET Core you need to add UseShellExecute = true // see https://docs.microsoft.com/dotnet/api/system.diagnostics.processstartinfo.useshellexecute#property-value Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri)); e.Handled = true; }
此外,您还需要以下导入:
using System.Diagnostics; using System.Windows.Navigation;
在您的应用程序中将如下所示: