0

TextBoxコントロールがあり、背景画像と背景色を設定できるようにしたいと思います。

現在、どちらか一方を設定できますが、両方を設定することはできません。両方を同時に設定しようとすると、「プロパティ'Background'が複数回設定されています」というエラーが表示されます。

これが私が使用したコードです:

<TextBox Name="tbImageTextBox">
      <TextBox.Background>
           <ImageBrush ImageSource="/Resources/Images/image.png" 
                  AlignmentX="Right" Stretch="None"/>
           <SolidColorBrush>#FF8D8A8A</SolidColorBrush>
      </TextBox.Background>
</TextBox>

また、TextBoxのスタイルに背景色を設定し、の画像を設定しようとしました<TextBox.Background>が、色は無視されます。

4

4 に答える 4

4

必要に応じて、背景にグリッドリソースを使用します。同じリソースを複数のテキストボックスに使用できます。

<Grid>
    <Grid.Resources>
        <ImageBrush x:Key="img" ImageSource="Blue hills.jpg"></ImageBrush>
        <SolidColorBrush x:Key="brownBrush" Color="Brown"></SolidColorBrush>
    </Grid.Resources>

    <TextBox x:Name="test" Background="{StaticResource img}" Width="100" Height="40" />
</Grid>
于 2012-08-29T14:36:47.783 に答える
2

VisualBrushとDrawingBrushを使用して画像を引き伸ばすか、TextBoxの残りの部分ではなく、画像に背景色のみを適用したため、TextBoxを背景色を設定してグリッドに配置し、背景画像をTextBox自体に適用することになりました。

于 2012-08-30T16:19:26.507 に答える
1

色と画像を1つのインスタンスで組み合わせる必要があります。たとえば、画像と色に設定されたコントロールを含むまたはBrushを使用できます。DrawingBrushVisualBrushImageBackground

于 2012-08-29T14:28:17.597 に答える
1

おそらく、VisualBrushまたはのいずれかが必要DrawingBrushです。これらの詳細については、MSDNのこちらをご覧ください。このような何かがあなたを始めるかもしれません:

<Rectangle Width="75" Height="75">
  <Rectangle.Fill>
    <VisualBrush TileMode="Tile">
      <VisualBrush.Visual>
        <Grid>
          <Image BaseUri="somepic.png" />
          <Rectangle Brush="FF8D8A8A" />  
        </Grid>
      </VisualBrush.Visual>
    </VisualBrush>
  </Rectangle.Fill>
</Rectangle>
于 2012-08-29T14:33:05.643 に答える