Überlänge ...



  • Wenn ich bei einer ListBox, CheckedListBox, oder ComboBox einen Text-Eintrag habe, der über das Fenster hinausreicht, wie stelle ich das fest, damit ich ein ToolTip Fenster anzeigen kann ?



  • Mir fällt da nur ein dass du das berechnen könntest.
    1 char ist im durchschnitt glaube ich 6 px breit.



  • JCarlson schrieb:

    1 char ist im durchschnitt glaube ich 6 px breit.

    Guter Joke!

    Mittels TextRenderer.MeasureText (bzw. Graphics.MeasureString) kannst du die Größe eines Textes berechnen (beachte natürlich, daß du den richtigen Font des Controls dazu übergibst).


  • Administrator

    JCarlson schrieb:

    1 char ist im durchschnitt glaube ich 6 px breit.

    Das will ich bei einem Font mit 72pt sehen 😃

    Hier noch die Links zur Dokumentation der von Th69 erwähnten Methoden:
    TextRenderer.MeasureText
    Graphics.MeasureString

    Grüssli



  • MeasureString ist imho immer noch verbuggt.
    Hier mal der erst beste Link den ich gefunden habe:

    http://connect.microsoft.com/VisualStudio/feedback/details/115410/drawstring-and-measurestring-bugs-spacing-kerning-and-width-measuring

    Bin jedenfalls vor einiger Zeit (imho in NET 3.5) auch noch darüber gestolpert.



  • Dravere schrieb:

    JCarlson schrieb:

    1 char ist im durchschnitt glaube ich 6 px breit.

    Das will ich bei einem Font mit 72pt sehen 😃

    Dan will ich aber auch sehen wer so eine Schriftgrösse in einer Listbox, Combobox usw. hat 😉

    @Th69
    Kennst du zufällig so eine Methode auch für js? Dort mache ich das nämlich momentan mit so einer berechnung^^



  • JCarlson schrieb:

    1 char ist im durchschnitt glaube ich 6 px breit.

    1. Es ist abhängig von den Windows Theme
    2. Windows kann auch eine andere Auflösung und Zoomstufe eingestellt haben
    3. WPF kennt keine Pixel sondern "Einheiten"
    4. ist es in anderen Sprachen auch 6px?
    5.
    ist
    "wwwwwwwwww"
    "llllllllll"
    gleichgroß?

    Fest von einem Wert ausgehen ist Bullshit Hoch 15



  • David W schrieb:

    JCarlson schrieb:

    1 char ist im durchschnitt glaube ich 6 px breit.

    1. Es ist abhängig von den Windows Theme
    2. Windows kann auch eine andere Auflösung und Zoomstufe eingestellt haben
    3. WPF kennt keine Pixel sondern "Einheiten"
    4. ist es in anderen Sprachen auch 6px?
    5.
    ist
    "wwwwwwwwww"
    "llllllllll"
    gleichgroß?

    Fest von einem Wert ausgehen ist Bullshit Hoch 15

    1. Das ist klar, hat aber auch meist einen minimen Einfluss.
    2. Das ist für den code ziemlich egal, da dieser nicht die Windows Einstellungen nutzt um die Grösse zu berechnen.
    3. Hat er nie gesagt das er mit WPF arbeitet.
    4. Bezweifel ich das er eine Übungsapplikation kompatibel für chinesen macht.
    5. Nein, daher gibt es einen durchschnitt.



  • @JCarlson
    Du bist mit den 6px in die Kacke getreten und kannst jetzt lange versuchen, dich rauszureden. Du hast etwas falsches gesagt und kommst wesentlich besser aus der Sache raus, wenn du einfach "sorry, shit happens. Wieder was gelernt" sagst.
    (Ich weiß man gibt ungern zu, dass man was verbockt hat, aber tatsächlich ist es kein Problem, Fehler zu machen. Blöd ist nur, wenn man nicht dazu steht und v.a. nichts draus lernt)



  • JCarlson, die Idee ist wirklich Unsinn.



  • Ich dachte eigentlich das Sei bei meiner obigen Antwort klar geworden wo ich Th69 fragte ob er solch eine Methode welche er vorschlug auch in js kennen würde.
    Da mir selber bewusst ist das es keine sonderlich gute Lösung ist.

    Sollte mir aber trotzdem das Recht geben etwas gegen eine unsinnige Aussage wie
    "2. Windows kann auch eine andere Auflösung und Zoomstufe eingestellt haben" welche darauf keine Auswirkung hat etwas sagen zu dürfen.


Anmelden zum Antworten