答案 0 :(得分:1)
假设您有办法访问这个说话气泡对象,您只需将宽度和高度设置为文本在其中所需的宽度和高度,并添加适当的填充。
如何衡量文字的大小之前已经回答过:https://stackoverflow.com/a/9266288/572760
修改强>
因此,要进行实际绘制,您实际上需要一个椭圆和一些文本。
一种方法是在画布上添加这样的东西。
<Canvas>
<Viewbox Name="viewbox" Width="100" Height="100">
<Grid Name="grow" Width="100" Height="100">
<Ellipse Fill="LightGray" Stroke="Black"/>
<TextBlock Name="ThatsWhatHeSaid" HorizontalAlignment="Center" FontSize="48" FontWeight="Bold" Foreground="LightSkyBlue" Text="" TextAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Viewbox>
然后在你的代码隐藏中添加前面提到的MeasureString,并处理文本更改的情况。
ThatsWhatHeSaid.Text += "it grows larger";
Size mySize = MeasureString(ThatsWhatHeSaid.Text);
const int padding = 100;
grow.Width = mySize.Width + padding;
grow.Height = mySize.Height + padding;
viewbox.Width = grow.Width;
viewbox.Height = grow.Height;
答案 1 :(得分:1)
你试过吗?即使没有尝试合作也很难提供帮助。
如果您真的不知道从哪里开始,我建议使用除了语音气泡之外的所有图像,并使用Canvas with Ellipse使用绑定绘制椭圆作为上述建议。