You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取WPF中SfRichTextBoxAdv打开文件的完整路径?

获取WPF SfRichTextBoxAdv中打开/加载文件的完整路径

要获取SfRichTextBoxAdv中打开或加载文件的完整文件名,无需依赖SfRichTextRibbon的事件,直接利用SfRichTextBoxAdv自身的文件相关事件即可解决,以下是具体方案:

核心解决方案

1. 监听FileOpened事件

当通过SfRichTextRibbon的打开按钮或SfRichTextBoxAdv的OpenCommand打开文件时,FileOpened事件会触发,其参数FileOpenedEventArgs包含完整的文件名:

修改XAML代码

给SfRichTextBoxAdv添加FileOpened事件绑定:

<syncfusion:SfRichTextBoxAdv x:Name="richTextBoxAdv" Grid.Row="1" 
                             LayoutType="Pages" AcceptsTab="True" 
                             AllowDrop="True" 
                             FileOpened="RichTextBoxAdv_FileOpened"
                             >
    <syncfusion:SfRichTextBoxAdv.SpellChecker>
        <RichTextBoxAdv:SpellChecker IsEnabled="True" x:Name="SpellChecker" 
                                     IgnoreURIs="True" IgnoreAlphaNumericWords="True">
        </RichTextBoxAdv:SpellChecker>
    </syncfusion:SfRichTextBoxAdv.SpellChecker>
</syncfusion:SfRichTextBoxAdv>

后台处理代码

private void RichTextBoxAdv_FileOpened(object sender, FileOpenedEventArgs e)
{
    // 获取打开文件的完整路径
    string fullFileName = e.FileName;
    // 此处可根据需求处理文件名,例如显示到UI或存储
}

2. 监听DocumentLoaded事件(兼容代码加载/拖拽场景)

如果是通过代码调用Load方法加载文件,或者通过拖拽方式导入文件,可通过DocumentLoaded事件结合DocumentSource属性获取路径:

修改XAML代码

添加DocumentLoaded事件绑定:

<syncfusion:SfRichTextBoxAdv x:Name="richTextBoxAdv" Grid.Row="1" 
                             LayoutType="Pages" AcceptsTab="True" 
                             AllowDrop="True" 
                             FileOpened="RichTextBoxAdv_FileOpened"
                             DocumentLoaded="RichTextBoxAdv_DocumentLoaded"
                             >
    <!-- 其他内容不变 -->
</syncfusion:SfRichTextBoxAdv>

后台处理代码

private void RichTextBoxAdv_DocumentLoaded(object sender, DocumentLoadedEventArgs e)
{
    if (richTextBoxAdv.DocumentSource != null && richTextBoxAdv.DocumentSource.IsFile)
    {
        // 获取加载文件的完整路径
        string fullFileName = richTextBoxAdv.DocumentSource.LocalPath;
        // 处理文件名逻辑
    }
}

说明

  • 你之前尝试的DocumentChanging事件仅用于通知文档即将变更,不包含文件路径信息,因此无法满足需求。
  • SfRichTextRibbon的所有文件操作命令(打开、保存等)均绑定到SfRichTextBoxAdv的对应命令,无需单独处理Ribbon的事件。

内容的提问来源于stack exchange,提问作者Walter Verhoeven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 01:38:16