[German]Textformatierung im Dateifenster

Started by walle, October 24, 2020, 10:08:31 PM

Previous topic - Next topic

walle

Hallo!

Im Dateifenster habe ich Folgendes als Inhalt eines Fußzeilenfeldes definert:

{File.AT.Inhalte.AAA|is:,{File.AT.Inhalte.BBB},{File.AT.Inhalte.AAA}
{File.AT.Inhalte.BBB}}

Für das Feld ist die Schriftfarbe weiß definiert.

=> Sofern AAA nicht leer ist, wird AAA und eine Zeile darunter BBB ausgegeben. Wenn AAA
leer ist, wird BBB ab der ersten Zeile ausgegeben.

Nun möchte ich, dass der Inhalt von File.AT.Inhalte.AAA in der Schrfiftfarbe rot angezeigt wird,
während File.AT.Inhalte.BBB weiterhin in der vordefinierten Farbe angezeigt wird.

Wie mache ich das?

thrinn

Versuche es doch einmal hiermit:
<Run Foreground='#FF0000'>{File.AT.TEST.AAA}</Run>{File.AT.TEST.AAA|hasvalue:§;replace:§=={lf}}{File.AT.TEST.BBB}
Das Paragraphenzeichen kann auch durch etwas Anderes ersetzt werden, das ganz sicher nicht in den AAA-Attributen vorkommt. Ich habe es nicht hinbekommen, den Zeilenumbruch direkt zu hinterlegen, daher der Trick mit dem Ersetzen von § durch {lf}.
Thorsten
Win 10 / 64, IMatch 2018, IMA

walle

Funktioniert für mich prima. Danke.

War die gewünschte Formatierung in meinem Wenn-Dann-Ausdruck gar nicht möglich?

Mario

#3
Das mit den is: wird nicht funktionieren. is: kann nicht auf leer/null prüfen.
Du must hasvalue: verwenden. Und dann entweder BBB immer ausgeben oder als default:{BBB}

Mit <Run> kannst Du wie in der Hilfe beschrieben Farben verwenden: Formatting Output with XAML

Leider kommt bei Deinem Vorhaben einige Schwierigkeiten hinzu...Individuelle Farben für einige Bestandteile des Ausdrucks. Nichts, was man oft braucht.

Da das Dateifenster beliebige Daten anzeigen können muss und dazu XAML für die Formatierung verwendet, werden kritische Zeichen wie < und > automatisch umgewandelt. Ansonsten können Inhalte in Beschreibungen oder Schlüsselwörtern das Layout des Dateifensters zerschießen.

Da Du aber < und > für <Run> und </Run> brauchst, sind ein zusätzliche Anweisungen notwendig. Ich verwende Platzhalter für <Run...> und </Run> und den Zeilenvorschub und ersetze sie am Ende durch das spezielle pereplace.

Ich haben das Attribute Set "Notes" für meinen Test genutzt. Bitte passend ersetzen.

{File.AT.Notes.Title|hasvalue:_c_o_{File.AT.Notes.Title}_c_c__nl_{File.AT.Notes.Text};default:{File.AT.Notes.Text};replace:_nl_=={lf};pereplace:_c_o_==<Run Foreground="#ff0000">;pereplace:_c_c_==</Run>}


-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

walle

Hi Mario,

du hast sicherlich Recht, wenn du sagst, dass is: nicht auf leer/null prüfen und daher mein Ausdruck nicht
funktionieren kann - tut er aber.  :) Bis zu meiner Idee, die erste Zeile fasrblich absetzen zu wollen, hat er
genau so bisher seinen Dienst getan.

Deinen Vorschlag habe ich natürlich auch getestet und er läuft für mich ebenso gut wie der von thrinn.
Gibt es irgendeinen Grund, sich für den einen oder andere Ausdruck zu entscheiden?

Für deine Hilfe auch herzlichen Dank!

Hier möchte ich aber gleich mal ein Problem anschließen, das mich immer wieder nervt: Häufig klicke ich
im Dateifenster versehentlich in den Bereich außerhalb des Bíldes und dann öffnet sich immer der
Layout-Editor. Kann man irgendwie verhindern?

thrinn

Quote from: walle on October 28, 2020, 09:39:08 AM
Hier möchte ich aber gleich mal ein Problem anschließen, das mich immer wieder nervt: Häufig klicke ich
im Dateifenster versehentlich in den Bereich außerhalb des Bíldes und dann öffnet sich immer der
Layout-Editor. Kann man irgendwie verhindern?
Auch dafür gibt es eine Einstellung: Preferences > File Window, vorletzte Option.
Thorsten
Win 10 / 64, IMatch 2018, IMA

sinus

Quote from: thrinn on October 28, 2020, 11:08:03 AM
Quote from: walle on October 28, 2020, 09:39:08 AM
Hier möchte ich aber gleich mal ein Problem anschließen, das mich immer wieder nervt: Häufig klicke ich
im Dateifenster versehentlich in den Bereich außerhalb des Bíldes und dann öffnet sich immer der
Layout-Editor. Kann man irgendwie verhindern?
Auch dafür gibt es eine Einstellung: Preferences > File Window, vorletzte Option.

Kaum zu glauben, was man dank Mario alles einstellen kann!  :)
Best wishes from Switzerland! :-)
Markus

sinus

Quote from: walle on October 28, 2020, 09:39:08 AM
...

Deinen Vorschlag habe ich natürlich auch getestet und er läuft für mich ebenso gut wie der von thrinn.
Gibt es irgendeinen Grund, sich für den einen oder andere Ausdruck zu entscheiden?


Keine Ahnung, generell sagte Mario mal, je weniger Variablen, desto besser.  ;D

Nur zum sagen, für mich unwichtig, obwohl kurios:
Beide Varianten funktionieren bei mir auch, aber nur im Footer.
Sobald ich die exakt gleiche Variable im header einsetze, funktioniert das mit der neuen Zeile nicht mehr, sowohl die von thrinn wie auch die von Mario nicht.

Deshalb denke ich, dass Du Deine Variablen wohl im Footer einsetzt.
Best wishes from Switzerland! :-)
Markus

Mario

Der {nl} Trick funktioniert im Header nicht.

Also einfach {lf} durch das korrekte <LineBreak/> ersetzen und zusammen mit pereplace statt replace verwenden (damit die < und > nicht entfernt werden).

{File.AT.Notes.Title|hasvalue:_c_o_{File.AT.Notes.Title}_c_c__nl_{File.AT.Notes.Text};default:{File.AT.Notes.Text};pereplace:_nl_==<LineBreak/>;pereplace:_c_o_==<Run Foreground="#ff0000">;pereplace:_c_c_==</Run>}
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

walle

Quote from: thrinn on October 28, 2020, 11:08:03 AM
Quote from: walle on October 28, 2020, 09:39:08 AM
Hier möchte ich aber gleich mal ein Problem anschließen, das mich immer wieder nervt: Häufig klicke ich
im Dateifenster versehentlich in den Bereich außerhalb des Bíldes und dann öffnet sich immer der
Layout-Editor. Kann man irgendwie verhindern?
Auch dafür gibt es eine Einstellung: Preferences > File Window, vorletzte Option.

Toll, vielen Dank!