Fragensteller
Textbox Funktion wie in Zune

Frage
-
Hallo
Ich arbeite mit Silverlight 4 in VB.NET
Seit einigen Tagen habe ich mich mit dem Programm Zune etwas näher beschäftigt und habe festgestellt, dass die dort in jedem
TextBlock
TextBox
GridColumneine schöne Funktion verwenden. und zwar wird der Text nicht einfach abgeschnitten, wenn er sich nicht ausgeht, sondern es wird ein "Fade-Out" gemacht.
Sprich: der Text wird bei den letzten noch sichtbaren Buchstaben immer heller, bis er genau so weiß wie der Hintergrund ist. Das finde ich ein schönes Feature. Und wollte wissen, ob mir jemand erklären kann, wie ich das auch implementieren kann.
Schönen Nachmittag - DANKE im Voraus
Donnerstag, 8. Dezember 2011 12:04
Alle Antworten
-
Hallo Zero,
Ich weiß jetzt nicht genau welches Feld du meinst, aber von der Beschreibung her könnte der Effekt ein Verlauf auf der Vordergrundfarbe sein.
Daniel
http://www.silverlight-community.de - deutsche Community mit Tutorials, Blogs und Usergroups- Bearbeitet Robert Breitenhofer Mittwoch, 14. Dezember 2011 15:09 Formatierung
Montag, 12. Dezember 2011 13:52 -
Hallo!
Entschuldige bitte die wirklich verspätete Antowort!
Ja, grundsätzlich hast Du mit Deinem Ansatz recht, der Effekt ist auf die Vordergrundfarbe anzuwenden. - Mein Problem bei dieser Überlegung ist aber, dass ich ja nicht weiß, wie groß die Textbox/oder Grid-Spalte ist und es soll ja nicht einfach jeder Text "aus-faden", sondern nur dann, wenn der Text länger ist, als die Textbox/oder Grid-Spalte.
DANKE
Sonntag, 18. Dezember 2011 13:55 -
Hmm, da wirst du die Textgröße anhand deines Fonts berechnen müssen denke ich.
Als Kompromiss könntest du das Fade Out ja auch nur auf die letzten 3 Buchstaben legen.
Daniel
http://www.silverlight-community.de - deutsche Community mit Tutorials, Blogs und UsergroupsDonnerstag, 22. Dezember 2011 17:18 -
Hallo Zero_G,
hat diesen Lösungsvorschlag bei Dir funktioniert? Vielen Dank!
VG/Bogdan
Ich bin gerne bei den Foren. Es kommt von Herzen. Es wird aber keine implizite oder sonstige Garantie für die geposteten Antworte / Informationen gewährt. Hier auch die Forenregeln.- Bearbeitet Bogdan Petru Roiu Freitag, 13. Januar 2012 09:14
Freitag, 13. Januar 2012 09:13 -
Sorry für die späte Nachricht.
Nein, es funktioniert nicht, denn so wie ich es schon geschildert habe: Egal wie lange die Textbox ist, wird bei dem Lösungsvorschlag immer Ein Fade-Out-Erzeugt. Ich bräuchte eher so den Ansatz: Wenn Textbox-Textlänge > Textbox dann Textlänge = FadOut.... (Ganz vereinfacht!)
Schönen Abend
Montag, 16. Januar 2012 18:05 -
Ja, das Stichwort ist "Berechnen". In WPF gibt es ein Objekt dafür: http://msdn.microsoft.com/en-us/library/system.windows.media.formattedtext.aspx
Evtl. hilft dir dieser Codeschnipsel. Da wird eine Breitenberechnung anhand eines Textblockes durchgeführt:
public static String PageText(TextBlock txtPage, String BookText) { TextBlock t = new TextBlock(); t.FontFamily = txtPage.FontFamily; t.FontStyle = txtPage.FontStyle; t.FontWeight = txtPage.FontWeight; t.FontSize = txtPage.FontSize; t.Text = BookText; Size Actual = new Size(); Actual.Width = t.ActualWidth; Actual.Height = t.ActualHeight; if(Actual.Height <= txtPage.ActualHeight) return BookText; Double hRatio = txtPage.ActualHeight / Actual.Height; return s.Substring((int)((s.Length - 1) * hRatio)); }
Quelle und Rahmeninfos: http://stackoverflow.com/questions/5130710/programmatically-detemining-max-fit-in-textbox-wp7Daniel
http://www.silverlight-community.de - deutsche Community mit Tutorials, Blogs und UsergroupsMontag, 16. Januar 2012 18:52