我需要创建一个带圆角的矩形气泡,里面有文字,就像卡通气泡一样。我需要气泡水平和垂直扩展,具体取决于它包含的文本的大小。我希望语音箭头和圆角的半径保持不变。
我可以简单地使用一个路径来创建我的气泡,但我不能调整气泡的大小并保持角半径和箭头不变......这是将调整大小的整个路径。
我很欣赏有人可以指出我正确的方向。
删除了死亡的ImageShack链接
这是卡通泡泡用户控件的最终版本。我在Jobi Joy的版本中添加了一个没有笔划的矩形来隐藏路径线的末尾,而不是试图让它与矩形齐平。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="40"/>
</Grid.RowDefinitions>
<Rectangle Fill="#FF686868" Stroke="#FF000000" RadiusX="10" RadiusY="10"/>
<Path Fill="#FF686868" Stretch="Fill" Stroke="#FF000000" HorizontalAlignment="Left" Margin="30,-5.597,0,-0.003" Width="25" Grid.Row="1" Data="M22.166642,154.45381 L29.999666,187.66699 40.791059,154.54395"/>
<Rectangle Fill="#FF686868" RadiusX="10" RadiusY="10" Margin="1"/>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="25" Text="Hello World" TextWrapping="Wrap"/>
</Grid>
答案 0 :(得分:25)
使用此XAML,您可以创建一个PopUp或ContentControl,并可以将此Grid作为控件模板,以获得一致的外观
<Grid x:Name="grid">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="40"/>
</Grid.RowDefinitions>
<Rectangle Fill="#FF686868" Stroke="#FF000000" RadiusX="10" RadiusY="10"/>
<Path Fill="#FF686868" Stretch="Fill" Stroke="#FF000000" HorizontalAlignment="Left" Margin="30,-1.6,0,0" Width="25" Grid.Row="1"
Data="M22.166642,154.45381 L29.999666,187.66699 40.791059,154.54395"/>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="25" Text="Hello World" TextWrapping="Wrap"/>
</Grid>
删除了死亡的ImageShack链接
答案 1 :(得分:1)
圆角可以是带角落别名的边框。
常量/语音箭头可以是与边框一起位于网格中的路径。
查看GroupBox的控件模板,看看“Header”内容如何定位为浮动在组框的边框上。
你会做同样的事情,除非你将路径放在底部而不是顶部。