2009-04-25 12 views
35

En WPF, ¿hay alguna forma de que la propiedad Text de un TextBlock contenga tanto texto codificado como un enlace específico?Tener texto codificado con un enlace en un TextBlock

Lo que tengo en mente es algo en la línea de lo siguiente (por supuesto, el siguiente no se compila):

<TextBlock Text="Number of Fans: {Binding Artist.Fans.Count}"></TextBlock> 

Respuesta

65

Hay, si usted está en .Net 3.5 SP1

<TextBlock Text="{Binding Path=Artist.Fans.Count, 
       StringFormat='Number of Fans: {0}'}" /> 
+1

¿Es posible utilizar múltiples salidas, similares a args [] en la cadena.Formato ([1], [2], [3], ... [n])? –

+1

falta escapando \ {0 \} –

3

uso Binding.StringFormat:

<TextBlock Text="{Binding Artist.Fans.Count, StringFormat='Number of Fans: {0}'}"/> 
+0

hi Danko - ¿Sabría cómo hacerlo funcionar con la sintaxis del elemento de propiedad? – BKSpurgeon

24

En el uso de el enfoque anterior:

<TextBlock Text="{Binding Path="Artist.Fans.Count", 
        StringFormat='Number of Fans: {0}'}" /> 

me pareció un poco restrictiva, ya que no pude encontrar una manera de negrita dentro de la StringFormat tampoco podía utilizar un apóstrofe en el StringFormat.

En lugar de eso fue con este enfoque, que funcionó mejor para mí:

<TextBlock TextWrapping="Wrap"> 
    <Run>The value</Run> 
    <Run Text="{Binding Path=MyProperty1, Mode=OneWay}" FontWeight="Bold" /> 
    <Run>was invalid. Please enter it with the format... </Run> 
    <LineBreak/><LineBreak/> 
    <Run>Here is another value in the program</Run> 
    <Run Text="{Binding Path=MyProperty2, Mode=OneWay}" FontWeight="Bold" /> 
</TextBlock>      
1

Aquí el valor de unión (clouds.all) se añade con "%". Puede agregar cualquier valor que desee después de "\ {0 \}".

<TextBlock Text="{Binding Path=clouds.all, StringFormat=\{0\}%}"/> 
+0

¿Podría [editar] una explicación de por qué este código responde la pregunta? Las respuestas de solo código están [desaconsejadas] (http://meta.stackexchange.com/q/148272/274165), porque no enseñan la solución. –

+0

@Nathan Edito mi respuesta. ¿Es útil ahora? Gracias por tu consejo –

Cuestiones relacionadas