Wie programmiere ich die String-Pixelbreite in ASP.NET?

8

Wie bekommen Sie die Größe einer Zeichenfolge? In Windows Forms ist es einfach, ich verwende nur Grafikobjekt und dann MeasureString-Funktion. In ASP.NET bin ich nicht sicher, wie das geht.

    
TroyS 05.04.2011, 14:58
quelle

7 Antworten

12

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.

    
Eystein Bye 28.09.2012, 08:01
quelle
3

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.

    
asawyer 05.04.2011 15:04
quelle
3

String.Length

Gibt die Länge der Zeichenfolge (Anzahl der Zeichen) zurück.

C #

%Vor%

VB.net

%Vor%

MSDN-Referenz

Ссылка

Physische Stringgröße Serverseite

  

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:

  • Die Schriftfamilie
  • Schriftgröße
  • Container-Dimensionen (wenn der Text Zeilen umschließt)
  • Alle anderen CSS-Regeln wie der Wortabstand machen die Berechnung viel weniger genau und komplexer. Versuchen Sie es zu vermeiden, wenn Genauigkeit wichtig ist.

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.

    
Tom Gullen 05.04.2011 15:01
quelle
0

Sie können die Length-Eigenschaft für eine Zeichenfolge wie folgt verwenden:

Ссылка

    
IrishChieftain 05.04.2011 15:00
quelle
0

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.

    
Mormegil 05.04.2011 15:05
quelle
0

@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%     
TroyS 05.04.2011 17:02
quelle
0

Die folgende Methode liefert die Größe einer Zeichenfolge, die in einer bestimmten Schriftart wiedergegeben wird:

%Vor%

Sie können dies verwenden, um die Breite wie folgt zu erhalten:

%Vor%     
Andrew 11.08.2017 10:42
quelle

Tags und Links