Wie Tom Gullen sagt. Sie können einfach eine Bitmap erstellen und die Zeichenfolge messen. Ich habe diesen Code, den ich verwende, um die Breite / Länge in Pixel zu finden. Ändern Sie einfach die Schriftart und -größe.
%Vor%wollte nur ein Beispiel zeigen.
Wenn Sie JQuery verwenden, lesen Sie diese Antwort
Pixellänge der Zeichenfolge in Javascript / jQuery ermitteln?
Ich bin sicher, wenn Sie nicht etwas Ähnliches arbeiten können.
Gibt die Länge der Zeichenfolge (Anzahl der Zeichen) zurück.
C #
%Vor%VB.net
%Vor%MSDN-Referenz
Ich bin nicht sicher, warum so viele Leute sind offensichtlich entschlossen, die Idee, dass es "flat out unmöglich" ist, diese Server-Seite zu tun, ist es nicht. Sie müssen nur ein wenig kreativ sein und bereit sein, viele Tests zu machen.
Es gibt keine native Funktion, die ich kenne, um die Pixelmaße einer Zeichenkette zu messen. Sie können es auf die folgenden Arten erreichen. Beachten Sie, dass Sie Folgendes wissen müssen:
1. Rendere es zu einem Bild und vermesse die Bildgröße
Zeichnen Sie den Text in eine Bitmap und messen Sie ihn dann. Dies sollte einigermaßen genau sein.
2. Verwenden Sie eine Schriftart mit fester Breite
Wenn Sie eine Schriftart mit fester Breite verwenden und der Text nicht umgebrochen wird, können Sie die Breite einfach mit der Anzahl der Zeichen multiplizieren.
3. Grobe Schätzung
Sie können eine ziemlich grobe Schätzung für Schriften ohne feste Breite erhalten, indem Sie eine beliebige Zeichenbreitennummer auswählen und sie mit den gesamten Zeichen multiplizieren. Hängt davon ab, wie genau du sein willst.
Sie können die Length-Eigenschaft für eine Zeichenfolge wie folgt verwenden:
Es ist absolut unmöglich auf der Serverseite zu tun (unter der Annahme, dass "ASP.NET" Webseiten meint, die mit ASP.NET erstellt wurden "). ASP.NET gibt HTML aus. Dies ist eine Auszeichnungssprache, die von einem Browser auf dem Client interpretiert und gerendert wird . Derselbe HTML-Code kann auf verschiedenen Geräten, in verschiedenen Browsern, mit verschiedenen installierten Schriftarten usw. angezeigt werden, was zu einer stark abweichenden Darstellung führt.
Ihre ASP.NET-Site, auf der der Code ausgeführt wird, weiß nicht, welche Schriftart, welche Auflösung usw. Ihr Client verwendet. Die einzige theoretische Möglichkeit wäre, clientseitigen Code (z. B. JavaScript, Silverlight, Flash, ...) auszuführen, um einen Bericht an den Server zu senden. Dies wäre jedoch ziemlich schwierig.
Im Allgemeinen müssen Sie das nicht tun, Sie wollen das nicht tun.
@Tom Gullen, @asawyer
Dies ist meine vorübergehende Lösung und es scheint für jetzt zu funktionieren. fyi, mein Projekt war zufällig eine asp.net-Anwendung mit vielen dynamischen Schnittstellen, die darin involviert sind (das ist eine andere Geschichte). Auf jeden Fall ist meine kurzfristige Lösung unten veröffentlicht. Verwenden Sie einen Modalpopupextender (mit Listbox) im laufenden Betrieb, wenn der Benutzer auf eine Textbox (benutzerdefinierte Combobox) klickt. Die Ajax-Combobox funktioniert nicht besonders gut, besonders wenn es viele davon gibt, und Sie können die Dropdown-Breite nicht auf einer Dropdown-Liste einstellen.
%Vor%Tags und Links string asp.net code-behind