0

バックグラウンド

画面の下部に textBlock コントロールを配置しようとしています (その下に小さな余白があります)。背景を設定して、textBlock の背後に何が表示されていても簡単にできるようにします。読む。

Android では、単に背景を設定し、幅と高さを WRAP_CONTENT にするように指示するだけで、必要なスペースだけを使用できますが、WP8 では同様のものを見つけることができません。

現在のステータス

これは私が作成した xaml です。

...
<Grid >

    <Image x:Name="fullScreenImage" Stretch="Fill"
        Visibility="Collapsed" />

    <TextBlock   HorizontalAlignment="Center" VerticalAlignment="Bottom"
            Margin="0,0,0,200" FontSize="40" x:Name="pictureLabel" TextWrapping="Wrap"
            Foreground="#ff000000" />
</Grid>

問題

textBlock には background プロパティがないため、それをラップするものを使用する必要がありました。ただし、内容が動的に変化するため、単純にサイズを設定することはできません。

質問

ここでは、単純に背景色を設定したいと思います。

また、背景に角の丸い長方形、または 9 パッチの画像を使用できる場合は、非常にありがたいです。

textBlock の背景を設定するにはどうすればよいですか?

4

3 に答える 3

3

解決策は非常に簡単です。HirizontalAlignment を Left に設定するだけです。これがあなたのケースでうまくいくことを願っています。

<StackPanel HorizontalAlignment="Left">
            <Border Background="#66FFFFFF">                    
                    <TextBlock/>                    
            </Border>
</StackPanel>
于 2013-10-30T09:41:59.167 に答える
0

私は次の解決策を思いつきましたが、これは非常にうまく機能しますが、最小フォントと最大フォントサイズを設定する方法も本当に欲しいので、単一の単語がある場合、フォントが必要になる可能性がありますある程度のサイズにする必要があり、テキストが長すぎる場合は、フォントのサイズが小さくなり、すべて動的な方法で行われます。

コード:

label.Text = label;
label.Measure(new Size(RenderSize.Width, RenderSize.Height));
border.Width = label.DesiredSize.Width + border.Padding.Left + border.Padding.Right + border.BorderThickness.Left + border.BorderThickness.Right;
border.Height = label.DesiredSize.Height + border.Padding.Top + border.Padding.Bottom + border.BorderThickness.Bottom + border.BorderThickness.Top;

そしてxaml:

<Border BorderBrush="#ff000000" BorderThickness="2" CornerRadius="8" Visibility="Collapsed" Padding="5" Background="#bfff0000" Margin="10,0,10,200" VerticalAlignment="Bottom" x:Name="border">
    <StackPanel>
      <TextBlock FontSize="40" x:Name="pictureLabel" TextWrapping="Wrap" Foreground="#ff000000" />
    </StackPanel>
</Border>
于 2013-02-12T22:07:34.327 に答える