Benutzer mit den meisten Antworten
ToolTipp für Silverlight 1 / Textblockformatierung

Frage
-
Hallo zusammen,
ich habe einen Code für einen ToolTipp für Silverlight1.
Die Problematik hierbei ist, dass die Breite des Textfeldes über die Anzahl der Buchstaben ermittelt wird:
var stri_lang = str_lang(mytext); if (stri_lang > "") { var stri = stri_lang * 8; }
var xamlFragment = '<Canvas Width="'+stri+'" Height="18" Background="#FFFFE1" Canvas.Left="'+leftPos+'" Canvas.Top="'+topPos+'">'; xamlFragment += '<Rectangle Width="'+stri+'" Height="18" Stroke="Black" />'; xamlFragment += '<TextBlock FontSize="12" Text="'+ mytext + '" Canvas.Left="5" Canvas.Top="0" />'; xamlFragment += '</Canvas>';
Dies hat zur Folge, dass das Rechteck nicht immer an den Text angepasst ist (also entweder zu klein oder groß).
Gibt es einen Befehl, mit dem die Hintergrundfarbe des Textblockes angegeben werden kann?
Background funktioniert auf jeden Fall nicht.
Die Idee die mir hier vorschwebt wäre:
Den Text mir der Farbe hinterlegen und dem Text ein Leerzeichen voran- und hinten anzufügen.
Gruß
Obelix- Bearbeitet Robert Breitenhofer Freitag, 26. März 2010 15:58 Titel war: Silferlight
Samstag, 29. August 2009 10:50
Antworten
-
Warum nimmst du nicht SL3 mit dem ToolTipService?
Dein xamlFragment könnte so aussehen:
var xamlFragment = '<Canvas Canvas.Left="'+leftPos+'" Canvas.Top="'+topPos+'">';
xamlFragment += <Border BorderBrush="Black" BorderThickness="2" Background="#FFFFE1">';
xamlFragment += <TextBlock FontSize="12" Text="'+ mytext + '" Canvas.Left="5" Canvas.Top="0" />';
xamlFragment += </Border>';
xamlFragment += </Canvas>';
--
Peter- Als Antwort markiert Stefan Menzel Samstag, 29. August 2009 22:25
- Tag als Antwort aufgehoben Stefan Menzel Samstag, 29. August 2009 22:25
- Als Antwort markiert Stefan Menzel Samstag, 29. August 2009 23:00
- Tag als Antwort aufgehoben Stefan Menzel Sonntag, 30. August 2009 07:22
- Als Antwort markiert Robert Breitenhofer Sonntag, 30. August 2009 13:29
Samstag, 29. August 2009 20:15 -
Mit Lehrzeichen meinte ich natürlich Leerzeichen :-)
--
Peter- Als Antwort vorgeschlagen Peter Fleischer Sonntag, 30. August 2009 09:45
- Als Antwort markiert Robert Breitenhofer Sonntag, 30. August 2009 13:29
Sonntag, 30. August 2009 09:45
Alle Antworten
-
Warum nimmst du nicht SL3 mit dem ToolTipService?
Dein xamlFragment könnte so aussehen:
var xamlFragment = '<Canvas Canvas.Left="'+leftPos+'" Canvas.Top="'+topPos+'">';
xamlFragment += <Border BorderBrush="Black" BorderThickness="2" Background="#FFFFE1">';
xamlFragment += <TextBlock FontSize="12" Text="'+ mytext + '" Canvas.Left="5" Canvas.Top="0" />';
xamlFragment += </Border>';
xamlFragment += </Canvas>';
--
Peter- Als Antwort markiert Stefan Menzel Samstag, 29. August 2009 22:25
- Tag als Antwort aufgehoben Stefan Menzel Samstag, 29. August 2009 22:25
- Als Antwort markiert Stefan Menzel Samstag, 29. August 2009 23:00
- Tag als Antwort aufgehoben Stefan Menzel Sonntag, 30. August 2009 07:22
- Als Antwort markiert Robert Breitenhofer Sonntag, 30. August 2009 13:29
Samstag, 29. August 2009 20:15 -
Hallo Peter,
eine einfache Antwort: weil ich es nicht weiß ;o)
Also ehrlich, das ist eine echt klasse Lösung, Danke.
Und damit der Text nicht so gepresst in dem Feld steht, habe ich am Anfang und am Ende noch ein Leerzeichen eingefügt:var plzh = " "; Text="'+ plzh + mytext + plzh +'"
Somit kann der eigentliche Text ohne Berücksichtigung für weitere Verwendungen so eingefügt werden wie er benötigt wird.
Andere Frage, was meinst Du mit SL3 (Silverlight 3)?
Samstag, 29. August 2009 22:34 -
Anstelle der Lehrzeichen sollte besser Padding oder Margin genutzt werden.
Das werd ich gleich mal ausprobieren. THX
SL3 - Silverlight 3. Da gibt es die Möglichkeiten mit ToolTipService.
Das Problem ist, ich habe Expression Studio 2 und da steht nur SL1 als Projekttyp zur Verfügung. Auch ist das gesamte Projekt in Silverlight 1 erstellt. Den Umbau auf Silverlight 2 habe ich noch vor mir und mir graut etwas davor ;).
Grüße von der Schwäbischem Alb StefanSonntag, 30. August 2009 07:30 -
Mit Lehrzeichen meinte ich natürlich Leerzeichen :-)
--
Peter- Als Antwort vorgeschlagen Peter Fleischer Sonntag, 30. August 2009 09:45
- Als Antwort markiert Robert Breitenhofer Sonntag, 30. August 2009 13:29
Sonntag, 30. August 2009 09:45