c# - 在扩展的 WPF 画布中显示没有文本的 TextBlock
问题描述
我在 WPF 中使用 C#,将一些图形和文本绘制到 WPF 画布中。为了向画布添加文本,我使用了 TextBlock,当我不更改画布的大小时,它可以正常工作。当我扩展画布的宽度时,有时不会绘制文本(从我扩展画布的 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);
}
不再显示文本的屏幕如下所示(来自上面的代码): 问题文本的屏幕截图
解决方案
推荐阅读
- php - 有没有更好的方法在 laravel 中使用内存有效的 foreach 添加相同数组索引的值?
- batch-file - 为什么 Windows 启动时我的批处理文件没有打开?
- wpf - 如何让 WPF 用户控件元素继承父样式,然后添加自定义样式?
- javascript - 日文、英文标签(如 Twitter)的正则表达式
- ios - Rider IDE 无法在 iPhone 设备上运行项目 Xamarin.iOS
- python - Pandas read_csv 用于无报价文件
- selenium - 使用 selenium webdriver 提取文本
- c# - 合并具有相同属性值的json对象c#
- snowflake-cloud-data-platform - 将日期解析为雪花中的不同格式
- jmeter - jmeter 没有按照编写的顺序运行脚本