0

我有一个 TextBox 控件,我希望能够设置背景图像和背景颜色。

目前我可以设置一个,或者另一个,但不能同时设置。当我尝试同时设置两者时,我收到“属性'背景'设置不止一次”错误。

这是我使用的代码:

<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

我最终将 TextBox 放入设置了背景颜色的网格中,并将背景图像应用于 TextBox 本身,因为使用 VisualBrush 和 DrawingBrush 拉伸了我的图像或仅将背景颜色应用于图像 - 而不是 TextBox 的其余部分。

于 2012-08-30T16:19:26.507 回答
1

您可能想要 aVisualBrush或 a 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 回答
1

您需要将颜色和图像组合在一个Brush实例中,例如,您可以使用 aDrawingBrush或 aVisualBrush包含Image图像的控件并将其Background设置为颜色。

于 2012-08-29T14:28:17.597 回答