我需要在 WriteableBitmap 的水平中心放置一个用户控件(在这种情况下为 TextBlock),这是我目前提供的代码:
textblock1.RenderTransformOrigin = new Point(0.5, 0.5);
wp.Render(textblock1, new TranslateTransform() {Y = topMargin, X = imgWidth / 2});
但似乎文本块的枢轴点仍在控件的左边缘,我做错了什么?
我需要在 WriteableBitmap 的水平中心放置一个用户控件(在这种情况下为 TextBlock),这是我目前提供的代码:
textblock1.RenderTransformOrigin = new Point(0.5, 0.5);
wp.Render(textblock1, new TranslateTransform() {Y = topMargin, X = imgWidth / 2});
但似乎文本块的枢轴点仍在控件的左边缘,我做错了什么?
您可能正在按中心进行变换,但 TranslateTransform 将中心移动的距离与任何其他点相同。这就像抓住一张纸并将其向左移动一英寸。你在哪里抓住它并不重要。
试试这个:
wp.Render(textBlock1, new TranslateTransform() {Y = topMargin - textBlock1.Height / 2, X = imgWidth / 2 - textBlock1.Width / 2});
除非您使用旋转/缩放/矩阵等,否则您可以忘记 RenderTransformOrigin。