询问者
如何设置圆角矩形背景背景

问题
-
代码如下,自己定义了一个visualbrush,作为消息内容的背景,期待为圆角效果
<VisualBrush x:Key="MyBrush" > <VisualBrush.Visual> <Border CornerRadius="2" Margin="0" BorderThickness="2" BorderBrush="Blue"> <Border.Background> <ImageBrush ImageSource="Icon-60@2x.png" Stretch="Fill"></ImageBrush> </Border.Background> </Border> </VisualBrush.Visual>
效果如下
我已经吧CornerRadius调得很小了,可是看起来还是椭圆,有什么办法让4个角看起来更锐利呢
一个矩形有点小圆角那种效果,如图
全部回复
-
Hi
我用可换行的TextBlock模拟一下你的场景:
<Border HorizontalAlignment="Center" VerticalAlignment="Center" CornerRadius="20" Background="#FF52B8D6"> <TextBlock TextWrapping="Wrap" Margin="5" Foreground="White"> <Run Text="111111111111111"/> <LineBreak/> <LineBreak/> <Run Text="222222222222222"/> <LineBreak/> <LineBreak/> <Run Text="333333333333333"/> </TextBlock> </Border>
Border的高度和宽度可以随Child,也就是TextBlock的Size去改变。
希望我的答案能帮助更多的人。
- 已建议为答案 DotNet Wang 2016年5月19日 6:01
-
我试了两种办法,一,把你上面给出的xml抽象成控件,确实可以非常完美的显示,但控件内容不能部分选中进行复制粘贴
二,把上面的部分做为visualbrush,把赋值为需要显示的paragraph的背景,边角问题依然存在。
具体如下:
一,
只能选中整个块。不能任意选择其中的内容
二,
<VisualBrush.Visual> <Border HorizontalAlignment="Center" VerticalAlignment="Center" CornerRadius="5" Background="#FF52B8D6"> <TextBlock TextWrapping="Wrap" Margin="5" Foreground="White"> </TextBlock> </Border> </VisualBrush.Visual>
Figure pf = new Figure(); pf.HorizontalAnchor = FigureHorizontalAnchor.PageLeft; pf.Margin = new Thickness(1, 0, 0, 0); Paragraph pTemp = new Paragraph(); pTemp.TextAlignment = TextAlignment.Left; pTemp.Inlines.Add(new Run("aaaaaa") { }); pTemp.Inlines.Add(new InlineUIContainer(b) { BaselineAlignment = BaselineAlignment.Top }); // pTemp.Inlines.Add(new InlineUIContainer(CreateBorder())); pf.Blocks.Add(pTemp); pf.Background = this.FindResource("MyBrush") as VisualBrush;
这样的话,
边角圆弧太大了,,,
-
您好 wpf萌新,
流元素中设置背景色使用的是Backgroud属性。 要实现您的效果首先要的就是先把这个流元素本身变成有圆角的。这个是很难实现的。所以还是建议您解释shao.meng的建议使用Border。如果您想要实现文本选中,可以在Border里面套一个RichTextBox.
<Border HorizontalAlignment="Center" VerticalAlignment="Center" CornerRadius="20" Background="#FF52B8D6"> <RichTextBox Background="Transparent"> <RichTextBox.Document> <FlowDocument> <Paragraph> <Run Text="111111111111111"/> <LineBreak/> <LineBreak/> <Run Text="222222222222222"/> <LineBreak/> <LineBreak/> <Run Text="333333333333333"/> </Paragraph> </FlowDocument> </RichTextBox.Document> </RichTextBox> </Border>
Best Regards,
Li WangWe are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click HERE to participate the survey.