Gewusst wie: Programmgesteuertes Messen, string Breite in pixel ASP.NET?
Wie kommst du auf die Größe einer Zeichenkette? In Windows Forms ist es einfach, ich habe gerade mit dem graphics-Objekt und dann MeasureString-Funktion. In ASP.NET ich bin mir nicht sicher, wie dies zu tun.
- Sind Sie versuchen, um die pixel-Größe des Strings auf den Bildschirm oder die Länge der Zeichenfolge in Zeichen?
- Ich bin versuchen, um die pixel-Breite, so kann ich programmgesteuert Größe eine dropdownlist, die größte Zeichenfolge
- Wenn Sie ASP.NET um eine Webanwendung zu erstellen...das wird ein wenig schwieriger. Sie werden versuchen, alle Eingänge auf der Seite die gleiche einheitliche Breite? Wenn nicht, wird der browser die Größe automatisch Dinge für Sie, solange Sie nicht angeben, eine Breite.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie Tom Schlucht ist zu sagen. Sie können einfach erstellen Sie eine bitmap und messure die Zeichenfolge. Ich habe diesen code, den ich verwenden, um zu finden, die Breite/Länge in pixel. Ändern Sie einfach die schriftart und-Größe.
Wollte nur ein Beispiel zeigen.
Wenn Sie mit JQuery finden Sie diese Antwort
Bestimmen Sie die Pixel-Länge des Strings in Javascript/jQuery?
Ich bin sicher, wenn Sie nicht arbeiten können, etwas ähnliches.
String.Länge
Gibt die Länge des Strings (Anzahl der Zeichen).
C#
VB.net
MSDN-Referenz
http://msdn.microsoft.com/en-us/library/system.string.length.aspx
Physikalischen String-Größe Serverside
Es gibt keine native Funktion, die ich kennen, Messen Sie die pixel-Dimensionen eines Strings. Sie erreichen es die folgenden Möglichkeiten. Hinweis Sie müssen wissen:
1. Rendern Sie ein Bild und Messen Sie die Bildgröße
Ziehen Sie den text in ein bitmap, und dann Messen. Diese sollte ziemlich exakt.
2. Verwenden Sie eine Feste Breite-schriftart
Wenn Sie eine Feste Breite-schriftart und den text nicht umbrochen wird, können Sie einfach multiplizieren Sie die Breite durch die Anzahl der Zeichen.
3. Grobe Schätzung
Könnten Sie bekommen eine ziemlich grobe Schätzung, die auf nicht-Schriften mit fester Breite von Kommissionierung einige willkürliche Zeichen Breite Zahl und multipliziert es durch Zeichen insgesamt. Hängt davon ab, wie genau Sie sein wollen.
Können Sie die Length-Eigenschaft auf eine Zeichenfolge wie folgt:
http://www.dotnetperls.com/string-length
Es ist völlig unmöglich, was zu tun auf der server-Seite (vorausgesetzt, dass durch "ASP.NET" meinen Sie web-Seiten erstellt mit ASP.NET"). ASP.NET Ausgänge HTML, das ist eine markup-Sprache interpretiert und gerendert , die von einem browser auf dem client. Der gleiche HTML-code angezeigt werden kann, auf verschiedenen Geräten in verschiedenen Browsern, mit verschiedenen installierten Schriftarten, etc., was in grob abweichende display.
Ihre ASP.NET Website das ausführen von code auf dem server nicht weiß, welche schriftart, welche Auflösung, usw. Ihr client verwendet. Den nur theoretische Weise dies getan werden könnte, ist das ausführen von client-side code (z.B. JavaScript, Silverlight, Flash, ...) zu melden wieder zurück an den server. Allerdings wäre dies ziemlich schwierig.
Im Allgemeinen, brauchen Sie nicht zu tun, Sie nicht tun wollen.
@Tom Schlucht, @asawyer
Dies ist meine temporäre Lösung und es scheint zu funktionieren jetzt. fyi, mein Projekt war eine asp.net Anwendung mit vielen dynamischen Schnittstellen beteiligten (das ist eine andere Geschichte). Bei anyrate meine Kurzfristige Lösung ist unten geschrieben. Im acually mit ein modalpopupextender (mit listbox) on the fly, wenn der Benutzer auf ein Textfeld (custom combobox). Die ajax-combobox funktioniert nicht sehr gut vor allem, wenn es gibt viele von Ihnen, und Sie können nicht setzen der dropdown-Breite einer dropdownlist.
In der folgenden Methode wird die Größe von Text in einer bestimmten schriftart:
Könnte man dann verwenden Sie diese, um die Breite Sie wie folgt vor
@Eystein Bye Lösung, hergestellt aus sauberer, mit aufzuhalten der Benutzung: