Feedback

C# - Strings verkürzen

Veröffentlicht von am 05.09.2013
(0 Bewertungen)
Besonders wenn man lokalisierte Anwendungen erstellt, ist es manchmal erforderlich Zeichenfolgen (Strings) auch verkürzen zu können. Diese Methode verkürzt einen String auf die angegebene Pixellänge.
Näheres steht in der XML-Dokumentation.

Hinweis: Ein Beispielprojekt ist auf meiner Webseite zu finden:
http://code-13.net/Tutorials/NET/StringShorter.aspx

Benötigte Namespaces:
System
System.Drawing
System.Text
System.Windows.Forms


Benötigte (zusätzliche) Verweise:
System.Windows.Forms.dll
System.Drawing


Hinweis: Die Methode ist als Erweiterung für System.String implementiert.
GFU-Schulungen  [Anzeige]

C# Komplett

Sie kennen sich in objektorientierter Programmierung aus. Sie schreiben C++ oder Java? Und nun stehen Sie vor der Aufgabe, in C# Anwendungen zu erstellen. Das C# Komplett-Seminar verschafft Ihnen umfassende Programmierkenntnisse in dieser Sprache. Nach der Schulung entwickeln Sie selbständig Anwendungen mit C#. Sie kennen die Datentypen und Klassenbibliotheken der objektorientierten Programmiersprache C#. Der Komplettkurs setzt bei den Grundlagen von C# ein. Sie arbeiten mit Variablen und konvertieren Typen. Multithreading, Delegates, Generics sind nach dem Seminar für Sie kein Geheimnis mehr.

Visual Studio Team Foundation Server 2017/2015 (TFS) - Komplett 

/// <summary>
/// Verkürzt einen String auf eine Bestimmte Länge in Pixeln.
/// </summary>
/// <param name="text">Der zu verkürzende Text.</param>
/// <param name="font">Die zu verwendende Schriftart für die Ermittlung.</param>
/// <param name="length">Die Maximallänge der zurück zu gebenden Zeichenfolge in Pixeln.</param>
/// <param name="appendEllipses"><c>True</c>, wenn in die angegebene Länge noch 3 Punkte (...) beinhalten soll, andernfalls <c>False</c>.</param>
/// <returns>Eine Zeichenfolge, welche in der angegebenen Schriftart <paramref name="length"/> Pixel lang ist.</returns>
/// <exception cref="System.ArgumentOutOfRangeException">Wird ausgelöst, wenn <paramref name="length"/> kleiner oder gleich 0 ist.</exception>
/// <exception cref="System.ArgumentNullException">Wird ausgelöst, wenn <paramref name="font"/> oder <paramref name="text"/> <c>null</c> ist.</exception>
public static string Short(this string text, Font font, int length, bool appendEllipses)
{
	if (length <= 0)
		throw new ArgumentOutOfRangeException("length", "length > 0!");
	if (font == null)
		throw new ArgumentNullException("font");
	if (text == null)
		throw new ArgumentNullException("text");

	StringBuilder sb = new StringBuilder();
	foreach (char c in text)
	{
		if (TextRenderer.MeasureText(sb.ToString() + c + (appendEllipses ? "..." : ""), font).Width < length)
			sb.Append(c);
	}
	if (appendEllipses)
		sb.Append("...");
	return sb.ToString();
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!