2011-02-24 29 views
7

Soy un poco nuevo en WPF, no sé si la pregunta es rara. Quería saber si es posible agregar un borde alrededor del texto dentro de un bloque de texto.¿Cómo agregar un borde al texto dentro de un bloque de texto en WPF?

EDIT:

según la sugerencia He intentado tanto, pero sin mucho éxito:

<Border BorderBrush="#FF0B232F" BorderThickness="2"> 
    <TextBlock HorizontalAlignment="Left" Text="TextBlock" TextWrapping="Wrap" FontSize="36" FontWeight="Bold" Foreground="#FF88BCCD" OpacityMask="Black"/>  
</Border> 

y

<Label BorderBrush="#FF0B232F" BorderThickness="2,2,2,2" Content="TextBlock" FontSize="36" FontWeight="Bold" Foreground="#FF88BCCD" /> 

Estoy haciendo algo mal aquí?

+0

Todo está bien con su código. ¿Qué te desagrada? –

+2

Su pregunta es cómo "agregar un borde alrededor del texto DENTRO (también conocido como contenido de) un bloque de texto" ... Nadie respondió esa pregunta. También me gustaría saber cómo hacer esto. – zezba9000

+1

Mire esta respuesta - http://stackoverflow.com/questions/93650/apply-stroke-to-a-textblock-in-wpf – zezba9000

Respuesta

3

En tales casos yo uso Label o TextBlock colocado en Border.

0

si lo que desea es tener un borde alrededor de su bloque de texto o cualquier otro uso de control:

<Border> 
     <TextBlock></TextBlock> 
    </Border> 

configura propiedades de borde como el color, CornerRadius, espesor, ...

4

Ambos enfoques son sus Correcto, sin embargo, si tiene el bloque de texto/etiqueta dentro de una grilla (o cualquier otro contenedor) declarada como usted tiene, su contenido se estirará. Intente configurar la VerticalAlignment y/o HorizontalAlignment en un valor adecuado (superior/izquierda, centro) ..

algo como esto:

<Border BorderBrush="#FF0B232F" BorderThickness="2" VerticalAlignment="Top"> 
    <TextBlock HorizontalAlignment="Left" Text="TextBlock" TextWrapping="Wrap" FontSize="36" FontWeight="Bold" Foreground="#FF88BCCD" OpacityMask="Black"/> 
</Border> 
+1

Filipe es correcta: si la cuadrícula/contiene contiene otros objetos, entonces el borde cubrirá efectivamente toda la grilla - VerticalAlignemnt y HorizontalAlignment corrige esto. ¡No es intuitivo! – Ricibob

2

Asumiendo que usted está solicitando una TextBlock de tamaño completo con una frontera superposición dentro de los límites de la TextBlock que podría envolverlo en una cuadrícula y dibujar las fronteras sobre la parte superior de la TextBlock como esto ...

<Grid HorizontalAlignment="Left"> 
    <TextBlock Text="TextBlock" TextWrapping="Wrap" FontSize="36" FontWeight="Bold" Foreground="#FF88BCCD" OpacityMask="Black" /> 
    <Border BorderBrush="#FF0B232F" BorderThickness="2" /> 
</Grid> 

Debido a que no hemos especificado la fila y la columna de cuadrícula en el TextBlock y borde objetos que el borde se superpone sobre TextBlock.

Cuestiones relacionadas