我在WPF中使用C#将一些图形和文本绘制到WPF画布中。 为了在画布上添加文本,我使用了TextBlock,当我不更改Canvas的大小时,这种方法效果很好。 当我扩展画布的宽度时,有时不绘制文本(从我扩展画布的x位置开始)。文本在那里,因为我可以看到文本背景(还有为测试添加的删除线)。 当我更改文本的长度和/或在代码中设置TextBlock的长度时,行为会发生变化。表示某些更改的意思是显示了文本。 图形在所有情况下都可以正常显示。
在绘制文本之前,我尝试确保“画布”的“宽度”和“实际宽度”正确。
我使用以下代码将文本绘制到画布上:
private void drawHeartrate(string hr, double xHr)
{
TextBlock hrTextBlock = new TextBlock();
hrTextBlock.Text = hr;
hrTextBlock.Foreground = Brushes.Black;
hrTextBlock.TextDecorations = TextDecorations.Strikethrough;
hrTextBlock.Background = Brushes.Yellow;
hrTextBlock.FontFamily = new FontFamily("Soho Gothic Pro");
hrTextBlock.FontSize = 14;
Canvas.SetLeft(hrTextBlock, xHr);
Canvas.SetTop(hrTextBlock, -2);
CnvsEcg.Children.Add(hrTextBlock);
}
不再显示文本的屏幕看起来像这样(来自上面的代码): Screenshot of problem text