2013-04-22 22 views
6

Così ho il seguente:Newline o ritorni a capo in MultiBind StringFormat

<TextBlock.Text> 
    <MultiBinding StringFormat="So and so will donate {0:C0}&#x0d;&#x0a;to {1}, bringing the&#x0d;&#x0a;total amount to {2:C0}."> 
    <Binding Path="VisitorTotal" /> 
    <Binding Path="EventName" /> 
    <Binding Path="EventTotal" /> 
    </MultiBinding> 
</TextBlock.Text> 

Ho provato &#x0d;&#x0a;, &#10;, \n, \\n, e varie combinazioni ad esso. Niente mi darà una nuova riga. Qual è l'accordo?

+0

Proprio ' ' * dovrebbe * funzionare - Puoi mostrare la dichiarazione completa di TextBlock? Avete impostato per avvolgere? –

+0

Ce l'ho impostato per eseguire il wrap in realtà. Interessante che ciò avrebbe un effetto. –

risposta

16

La mia preferenza è quella di utilizzare direttamente Environment.NewLine:

<MultiBinding StringFormat="So and so will donate {0:C0}{3}to {1}, bringing the{3}total amount to {2:C0}."> 
    <Binding Path="VisitorTotal" /> 
    <Binding Path="EventName" /> 
    <Binding Path="EventTotal" /> 
    <Binding Source="{x:Static System:Environment.NewLine}"/> 
</MultiBinding> 

Tuttavia, avrete anche bisogno di assicurarsi che il TextBlock.TextWrapping è impostato in modo appropriato.

+0

Fantastico. Intelligente. Impeccabile. –

+1

Con l'aggiunta di xmlns: s = "clr-namespace: System; assembly = mscorlib" per (Cambio sistema su s per evitare più parole "System" nella definizione dello spazio dei nomi). Rubato da LPL rispondere in [questa domanda SO] (http://stackoverflow.com/questions/183406/xaml-newline-in-string-attribute) – NGI