Hi Leute,
ja der Titel sagt es eigentlich schon. Ich hab in meinen Strings in den Resourcendateien Zeilenumrüche à la "\n" und beim binden werden diese aber nicht beachtet und einfach als Text mit ausgegeben.
Hat jemand eine Idee?
Druckbare Version
Hi Leute,
ja der Titel sagt es eigentlich schon. Ich hab in meinen Strings in den Resourcendateien Zeilenumrüche à la "\n" und beim binden werden diese aber nicht beachtet und einfach als Text mit ausgegeben.
Hat jemand eine Idee?
Das Problem hatte ich auch.
Meine Lösung kann ich dir morgen geben, wenn ich wieder an der Arbeit bin.
Gruss, Sachmet.
Mit der kostenlosen PocketPC.ch App von meinem Lumia 800 aus geschrieben.
Warum benutzt du nicht einfach TextWrapping?
Wie meinst du das? Die TextWrapping-Eigenschaft von bspw. TextBlöcken ?
Die nutze ich ja, aber manchmal möchte man auch einen Zeilenumbruch an bestimmten Stellen erzwingen und das funktioniert so im Moment bei mir nicht.
@Sachmet: Danke. :)
Ich habe es zwar noch nicht probiert, aber versuch mal & # 1 3 ;(ohne leerzeichen) für \r und & # 1 0 ;(auch ohne leerzeichen) für \n. Das sollte funktionieren
@pdelvo
Habs eben getestet: funktioniert leider nicht.
Ich habe mir eine kleine Funktion geschrieben, die ein von mir bestimmtes Zeichen (In diesem Fall "¦") in einen Zeilenumbruch wandelt. Mit dieses rufe ich jeweils die Resource-Strings auf.
Wenn es eine einfachere Lösung gibt: her damit. Und zu meinem Code: Ich bin Augenoptiker, nicht programmierer :-)
Ein Resource-String sieht dann z.B. so aus:
Code:"Das ist die erste Zeile¦¦Und das steht weiter unten"
Gruss,Code:private string formatResourceString(string resourceString)
{
string[] split = resourceString.Split('¦');
string tmpString = "";
foreach (string s in split)
{
tmpString += s;
tmpString += "\n";
}
return tmpString;
}
Sachmet.
Ich hab grad kein VisualStudio in der Arbeit bei dem die Phone Tools installiert sind aber die Replace-Methode sollte es jedenfalls auch im Silverlight-Framework geben. D.h. da würde dann was stehen wie:
Sollte da aber eigentlich ne schönere Lösung für die Resources geben aber funktionieren sollte es so durchaus.Code:string withNewline = resourceString.Replace("|", Environment.NewLine);
PS: Hoffe das kommt hier als positive Kritik an - wenn man in die Programmierung einsteigt und das nicht die Hauptbeschäftigung ist dann nutzt man halt Workarounds (kann mich ja auch noch an meine Anfangszeiten erinnern).
Environment.NewLine ist übrigens eine Konstante die den Zeilenumbruch für das jeweilige System richtig zurückgibt. Bei Windows ist es normalerweise \r\n.
Ich hab gerade eine einfachere Lösung gefunden:
Einfach im Resource-String Editor SHIFT+Enter für einen Zeilenumbruch drücken.
@StevieBallz
Danke für den Hinweis. Ich lerne gerne dazu :-) Wie geschrieben: meine Hauptbeschäftigung sind Augen. Ab und zu verbreche ich ein paar Tools für den Eigenbedarf. Wenn der Code sich fehlerfrei compilieren lässt, bin meist schon glücklich. Wenn er dann noch exakt das macht, was ich will, bin ich zufrieden :-)
Deine Version klappt übrigens einwandfrei.
Gruss,
Sachmet.
Ich habs ganz einfach gelöst, so wie Sachmet es sagte. Shift+Enter. :D Darauf bin ich gar nicht gekommen, weil ich meine Texte direkt ausm Quellcode genommen und rüberkopiert habe.^^ Wie einfach es manchmal ist. :D
Gruß
ErdnussFlipS
Ich hoffe es stört nicht, wenn ich kein neues Thema mache, da es um Environment.NewLine geht.
Bei mir ist das Symbol für eine neue Zeile nicht das selbe. Auf dem Gerät ist die Konstante NewLine = \r\n und bei der Textbox \r. Muss ich noch was einstellen, dass es funktioniert?
Im Emulator kann ich nicht debuggen: Die Breakpoints werden weiss mit einem hellbraunen Rand und einem gelben Dreieck(Mit einem Ausrufezeichen) unten rechts, mit der Meldung: Breakpoint will not currently be hit. No symbols loaded for this document
Ich hoffe ihr könnt mir helfen
Gruss
Cr3dos
Edit: / durch \ ersetzt