c# .net wpf xaml textblock

c# - Establecer TextBlock para ser completamente negrita cuando DataBound en WPF



textblock latex (3)

¿Me estoy perdiendo algo, o solo necesitas establecer la propiedad FontWeight en "Negrita"?

<TextBlock FontWeight="Bold" Text="{Binding Foo}" />

Tengo un control TextBlock de datos (que se está utilizando dentro de un DataTemplate para mostrar los elementos en un ListBox) y quiero poner todo el texto en el control en negrita. Parece que no puedo encontrar una propiedad en el explorador de propiedades para poner todo el texto en negrita, y todo lo que puedo encontrar en línea es el uso de la etiqueta <Bold> dentro de TextBlock, pero no puedo ponerlo como el los datos provienen directamente de la fuente de datos.

Debe haber una manera de hacer esto, pero ¿cómo? Soy muy inexperto en WPF, así que no sé dónde mirar.


En lugar de solo tener un TextBlock, intente esto:

<TextBlock> <Bold> <Run /> </Bold> </TextBlock>

Luego, en su lugar, databind a Run.TextProperty.


Usted dice que los datos provienen directamente de la fuente de datos; ¿es posible colocar una capa de abstracción delante de él? Es bastante común crear una Vista para lo que se muestra, y hacer que la Vista se comunique con los datos. La implementación más común de esta idea es Model View View-Model (MVVM). Lea sobre esto en línea.

Es posible que tenga una propiedad ''DisplayText'' que está vinculada al cuadro de texto, y es simplemente un ''getter'' que envuelve el texto subyacente. Puede detectar si el texto ya está envuelto y si no, envuélvalo.

P.ej.

public class TestView { private Test datasource; public TestView(Test source) { this.datasource = source; } public string DisplayText { get { if (datasource.Text.Contains("<bold>")==false) { return "<bold>" + datasource.Text + "</bold>"; } return datasource.Text; } } }

Luego, agréguese a la Vista en lugar de directamente al objeto.