web-dev-qa-db-ja.com

SilverlightでTextblockの背景色を変更するにはどうすればよいですか?

黄色の背景に青色のテキストがあるテキストブロックが必要です。 「フォアグラウンド」属性で青いテキストを設定できます。しかし、「背景」は機能しません(多分それは簡単すぎると思います)。

それで、これを行う最良の方法は何ですか?背景色のある長方形またはキャンバスでラップしますか?

また、Silverlightについて、背景色を設定したい要素の多くにBackground属性が含まれていない理由を理解するために知っておくべきことはありますか?

例えばこれにより、「プロパティBackgroundがタイプTextblockに見つかりませんでした」というエラーが発生します。

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

TextBlockFrameworkElement から派生します。 TextBox は、FrameworkElementから派生した Control から派生します。 背景色プロパティ がコントロールに配置されます。

WPFでは、 TextBlock には独自の Background Property があります。

テキストの背後に色を追加する最良の方法は、ボーダーやグリッドなどのコンテナー内にテキストを配置することです。何かのようなもの:

<Grid  Background="Yellow" >  
    <TextBlock Foreground="Blue"
               Height="20"
               HorizontalAlignment="Stretch"
               Margin="0" 
               Text="this is a test"/> 
</Grid>
43
Sorskoot
<Border Background="GreenYellow">
    <TextBlock Text="sdfs" Height="60" Width="200"  />
</Border>
9
igor_bugaenko

WPFにはありますが、何らかの理由でSilverlightにはありません。それをBorderでラップするだけです(コンテンツに合わせて自動的にサイズ変更されます)。

6
Steven Robbins

誰かがこのスレッドをグーグルまたはビンギングにした場合...

ラベルコントロールを使用するための背景が必要な場合は、バージョン3以降のツールキットにあります。バージョン4では、コアにすでに含まれていると思います。

参照 Silverlightのラベルコントロール

5
Braulio