2009-02-01 4 views
27

노란색 배경에 파란색 텍스트가있는 텍스트 블록을 원합니다. "전경"속성으로 파란색 텍스트를 설정할 수 있습니다. 하지만 "배경"이 작동하지 않습니다 (너무 쉽게 추측 할 수 있습니다).Silverlight에서 Textblock의 배경색을 변경하는 방법은 무엇입니까?

그래서 이것을 수행하는 가장 좋은 방법은 배경색이있는 사각형 또는 캔버스로 감싸는 것입니까?

그리고 자주 배경색을 설정하려는 많은 요소에 배경 특성을 포함하지 않은 이유를 알아야 할 Silverlight에 대해 알아야 할 것이 있습니까?

예컨대 이 WPF에 있지만, 그것은 어떤 이유로 실버에없는

<TextBlock 
    Foreground="Blue" 
    Background="Yellow" 
     Height="20" 
    HorizontalAlignment="Stretch" 
    Margin="0" 
    Test="this is a test"/> 

답변

43

TextBlockFrameworkElement에서 비롯된 것입니다. TextBox은 FrameworkElement에서 파생 된 Control에서 파생되었습니다. Background color property은 컨트롤에 배치됩니다.

WPF에서 TextBlock은 자신의 Background Property입니다.

텍스트 뒤에 색상을 추가하는 가장 좋은 방법은 테두리 또는 격자와 같은 컨테이너 안에 텍스트를 배치하는 것입니다. 뭔가 같은 : 누군가가 인터넷 검색이나 마시고 떠들이 스레드를 발견한다 그냥 경우

<Grid Background="Yellow" > 
    <TextBlock Foreground="Blue" 
       Height="20" 
       HorizontalAlignment="Stretch" 
       Margin="0" 
       Text="this is a test"/> 
</Grid> 
+1

국경을 사용하면이 경우에 유용합니다 참조하십시오. –

+6

배경이 콘텐츠 크기로만 설정 될 수 있도록 필요한 공간 만 차지하도록 textblock이 필요한 경우 어떻게해야합니까? –

6

:이 "속성 배경이 형 TextBlock의를 찾을 수 없습니다"라는 오류를 제공합니다. 둘레에 테두리를 감싸면 자동으로 내용의 크기가 조정됩니다.

5

...

그게 버전 3 이후 툴킷의 레이블 컨트롤을 사용 당신은 배경을해야하고, 나는 버전 4에서 생각하는 경우 그것은 이미 핵심에 포함되어 있습니다.

Label Control in Silverlight

9
<Border Background="GreenYellow"> 
    <TextBlock Text="sdfs" Height="60" Width="200" /> 
</Border> 
+0

답변에 대한 의견. 그냥 코드를 버리는 것이 일반적으로 최선의 방법은 아닙니다. 코드에 대한 설명을 추가해야합니다 (일부 텍스트 및 공식 문서에 대한 링크는 사전 임). 좋은 대답은이 질문에 대한 대답입니다.). – Styxxy

+0

나는 동의한다, 그러나 당신은 약간의 피드백을 필요로한다. 그러나 나는 이것을하는 방법 주위를 조사하고 있었다. 그리고 이것은 최고의 대답이다. – peterincumbria

관련 문제