出于this问题,我有一个文本框定义如下:
<TextBox>
<TextBox.Background>
<VisualBrush Stretch="Uniform">
<VisualBrush.Visual>
<StackPanel>
<TextBlock Background="Blue" Opacity="0.5" Text="155"/>
</StackPanel>
</VisualBrush.Visual>
</VisualBrush>
</TextBox.Background>
</TextBox>
结果是这样的
TextBox
:现在,如果我删除背景属性,则
TextBox
看起来像这样:我想要的是获得带有彩色背景的第二张图像。例如,在第一张图像中,我也希望背景色也能填充其余的空白。
最佳答案
您可以通过添加带有背景的Grid
和VisualBrush
来实现此目的,并在该网格中添加TextBox
:
<Grid>
<Grid.Style>
<Style TargetType="Grid">
<Setter Property="Background">
<Setter.Value>
<VisualBrush Stretch="Fill">
<VisualBrush.Visual>
<Rectangle Stretch="Fill" Stroke="Blue" Opacity="0.5" />
</VisualBrush.Visual>
</VisualBrush>
</Setter.Value>
</Setter>
</Style>
</Grid.Style>
<TextBox>
<TextBox.Style>
<Style TargetType="TextBox">
<Setter Property="Foreground" Value="Black" />
<Setter Property="Background">
<Setter.Value>
<VisualBrush Stretch="Uniform">
<VisualBrush.Visual>
<TextBlock Foreground="Gray" Opacity="0.5" Text="155"/>
</VisualBrush.Visual>
</VisualBrush>
</Setter.Value>
</Setter>
</Style>
</TextBox.Style>
</TextBox>
</Grid>
关于wpf - VisualBrush中的TextBox.Background属性表现怪异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14736021/