我有一个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>
中设置图像,但颜色会被忽略。
答案 0 :(得分:3)
根据需要将网格资源用于背景。相同的资源可用于多个文本框。
<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>
答案 1 :(得分:2)
我最终将TextBox放入一个带有Background颜色集的网格中,并将背景图像应用到TextBox本身,因为使用VisualBrush和DrawingBrush拉伸我的图像或仅将背景颜色应用于图像 - 而不是TextBox的其余部分
答案 2 :(得分:1)
您需要在单个Brush
实例中合并颜色和图片,您可以使用包含Image
控件的DrawingBrush
或VisualBrush
例如,Background
设置为颜色。
答案 3 :(得分:1)
您可能需要VisualBrush
或DrawingBrush
。有关这些的更多信息,请访问MSDN here。这样的事情可能会让你开始:
<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>