加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

使用WPF DataGridHyperLinkColumn项打开Windows资源管理器并打开

发布时间:2020-12-13 20:08:45 所属栏目:Windows 来源:网络整理
导读:我想要实现以下目标: 创建一个具有2列的WPF DataGrid: 第一个将具有显示目录路径的项目,以超链接样式.单击超链接将在项目指定的路径中打开Windows资源管理器. 第二个将以超链接样式显示文件路径的项目.单击超链接将启动文件,并使用Windows定义的默认应用程
我想要实现以下目标:

创建一个具有2列的WPF DataGrid:

第一个将具有显示目录路径的项目,以超链接样式.单击超链接将在项目指定的路径中打开Windows资源管理器.

第二个将以超链接样式显示文件路径的项目.单击超链接将启动文件,并使用Windows定义的默认应用程序.

我不知道这是否是正确的选择,但我将DataGridHyperlinkColumn添加到我的DataGrid.一个问题是添加不涉及互联网位置的Uri项目.另一个问题是以不打开网络浏览器的方式处理点击.

任何人都可以帮忙

这普遍有效:
<DataGridHyperlinkColumn Binding="{Binding Link}">
    <DataGridHyperlinkColumn.ElementStyle>
        <Style>
            <EventSetter Event="Hyperlink.Click" Handler="DG_Hyperlink_Click"/>
        </Style>
    </DataGridHyperlinkColumn.ElementStyle>
</DataGridHyperlinkColumn>
private void DG_Hyperlink_Click(object sender,RoutedEventArgs e)
{
    Hyperlink link = (Hyperlink)e.OriginalSource;
    Process.Start(link.NavigateUri.AbsoluteUri);
}

如果URI指向一个网站,它将使用默认的Web浏览器打开,如果它是一个文件夹,它将在资源管理器中打开,如果它是一个文件,它将使用与之关联的默认应用程序打开.

要将此属性用于自动生成的列,您的属性需要为Uri类型,因此将生成DataGridHyperlinkColumn.然后,您可以通过将样式放在DataGrid.Resources中来连接事件:

<DataGrid.Resources>
    <Style TargetType="Hyperlink">
        <EventSetter Event="Click" Handler="DG_Hyperlink_Click"/>
    </Style>
</DataGrid.Resources>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读