TextTrailingWordEllipsis.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using Avalonia.Utilities;
  2. namespace Avalonia.Media.TextFormatting
  3. {
  4. /// <summary>
  5. /// a collapsing properties to collapse whole line toward the end
  6. /// at word granularity and with ellipsis being the collapsing symbol
  7. /// </summary>
  8. public class TextTrailingWordEllipsis : TextCollapsingProperties
  9. {
  10. private static readonly ReadOnlySlice<char> s_ellipsis = new ReadOnlySlice<char>(new[] { '\u2026' });
  11. /// <summary>
  12. /// Construct a text trailing word ellipsis collapsing properties
  13. /// </summary>
  14. /// <param name="width">width in which collapsing is constrained to</param>
  15. /// <param name="textRunProperties">text run properties of ellispis symbol</param>
  16. public TextTrailingWordEllipsis(
  17. double width,
  18. TextRunProperties textRunProperties
  19. )
  20. {
  21. Width = width;
  22. Symbol = new TextCharacters(s_ellipsis, textRunProperties);
  23. }
  24. /// <inheritdoc/>
  25. public sealed override double Width { get; }
  26. /// <inheritdoc/>
  27. public sealed override TextRun Symbol { get; }
  28. /// <inheritdoc/>
  29. public sealed override TextCollapsingStyle Style { get; } = TextCollapsingStyle.TrailingWord;
  30. }
  31. }