标签中的路径显示

Posted

技术标签:

【中文标题】标签中的路径显示【英文标题】:Path Display in Label 【发布时间】:2010-09-06 10:26:30 【问题描述】:

.NET 中是否有任何自动修剪路径字符串的方法?

例如:

C:\Documents and Settings\nick\My Documents\Tests\demo data\demo data.emx

变成

C:\Documents...\demo data.emx

如果它被内置到 Label 类中会特别酷,我似乎记得它是——但找不到它!

【问题讨论】:

【参考方案1】:

TextRenderer.DrawTextTextFormatFlags.PathEllipsis 标志一起使用

void label_Paint(object sender, PaintEventArgs e)

  Label label = (Label)sender;
  TextRenderer.DrawText(e.Graphics, label.Text, label.Font, label.ClientRectangle, label.ForeColor, TextFormatFlags.PathEllipsis);

你的代码 95% 在那里。唯一的 问题是修剪后的文本是 绘制在文本之上 已经在标签上了。

是的,谢谢,我知道这一点。我的目的只是为了演示DrawText 方法的使用。我不知道您是要为每个标签手动创建事件还是只覆盖继承标签中的OnPaint() 方法。感谢您分享您的最终解决方案。

【讨论】:

【参考方案2】:

@lubos hasko 你的代码 95% 在那里。唯一的问题是修剪后的文本被绘制在标签上已经存在的文本之上。这很容易解决:

    Label label = (Label)sender;
    using (SolidBrush b = new SolidBrush(label.BackColor))
        e.Graphics.FillRectangle(b, label.ClientRectangle);
    TextRenderer.DrawText(
        e.Graphics, 
        label.Text, 
        label.Font, 
        label.ClientRectangle, 
        label.ForeColor, 
        TextFormatFlags.PathEllipsis);

【讨论】:

【参考方案3】:

不过自己写也不难:

    public static string TrimPath(string path)
    
        int someArbitaryNumber = 10;
        string directory = Path.GetDirectoryName(path);
        string fileName = Path.GetFileName(path);
        if (directory.Length > someArbitaryNumber)
        
            return String.Format(@"0...\1", 
                directory.Substring(0, someArbitaryNumber), fileName);
        
        else
        
            return path;
        
    

我猜你甚至可以将它添加为扩展方法。

【讨论】:

【参考方案4】:

您在标签上的想法是,如果它比宽度长(未设置为自动大小),它会放...,但那会是

c:\Documents and Settings\nick\My Doc...

如果有支持,它可能在 System.IO 中的 Path 类中

【讨论】:

【参考方案5】:

您可以使用 System.IO.Path.GetFileName 方法并将该字符串附加到缩短的 System.IO.Path.GetDirectoryName 字符串。

【讨论】:

以上是关于标签中的路径显示的主要内容,如果未能解决你的问题,请参考以下文章

java web 读取路径中的图片并显示的问题?

如何更改标签以使用 PyQt5 显示文件路径?

html 中img标签中src属性放绝对路径不能显示?

使用 PHP 获取图像文件路径并以 HTML 显示

img src=路径 总是显示不出图片 老是一把XX 新手学网页求解决

js获取a标签下img的图片路径