为了账号安全,请及时绑定邮箱和手机立即绑定

c# - 项目源文本到超链接

c# - 项目源文本到超链接

C#
茅侃侃 2021-11-28 17:47:31
我有一个我想制作超链接的链接列表,锚标记不起作用。还有另一种方法可以将字符串转换为链接吗?我正在使用<ItemsControl>绑定到LinkList.Link这是我尝试过的:for (int i = 0; i < this.LinkList.Link.Count; i++){    var link = this.LinkList.Link[i];    this.LinkList.Link[i] = "<a href=\"" + link + "\">" + link + "</a>";           //String.Format("<a href=\"{0}\">{0}</a>", link );}两者(在评论中)都不起作用。
查看完整描述

2 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

在 ItemsControl 的 ItemTemplate 中使用超链接如何,如下所示:


    <ItemsControl ItemsSource="{Binding LinkList}">

        <ItemsControl.ItemTemplate>

            <DataTemplate>

                <TextBlock>

                    <Hyperlink NavigateUri="{Binding Link}" RequestNavigate="Hyperlink_RequestNavigate">

                        <TextBlock Text="{Binding Link}" />

                    </Hyperlink>

                </TextBlock>

            </DataTemplate>

        </ItemsControl.ItemTemplate>

    </ItemsControl>

如您所见,超链接上还有一个事件“RequestNavigate”,它在代码后面有一个处理程序,如下所示:


   private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)

   {

        System.Diagnostics.Process.Start(e.Uri.AbsoluteUri);

        e.Handled = true;

   }

或者,当然,您可以绑定超链接的命令以使用 MVVM 模式执行导航。


希望有帮助。


查看完整回答
反对 回复 2021-11-28
?
慕后森

TA贡献1802条经验 获得超5个赞

<ListBox ItemsSource="{Binding LinkList, Mode=OneWay}">

 <ListBox.ItemTemplate>

    <DataTemplate>                     

       <Hyperlink NavigateUri="{Binding Link}">

         Link Text

        </Hyperlink>

    </DataTemplate>

 </ListBox.ItemTemplate>

</ListBox>

您可能需要将 XAML 模板作为绑定到 url 的超链接。


查看完整回答
反对 回复 2021-11-28
  • 2 回答
  • 0 关注
  • 214 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信