1

我有一个 WPF UserControl,它的作用类似于视口(在以下上下文中我将其称为“视口”)。此视口可以缩放和平移其内容(我认为缩放使用 Layout- 或 RenderTransform 来缩放内容)。基本上内容只是一个画布。这个画布包含一些形状和一些用于显示形状元数据的文本框。如果缩放因子为 1,一切都很好,但如果我缩小,画布会缩小,而且 TextBoxes 也会导致元数据不可读,因为文本太小了。

如何强制 TextBoxes 反缩放,以便它们不会改变屏幕上的大小?

我曾考虑将视口的变换(导致缩放)传递给文本框(以某种方式)并将其逆向应用于它们,但这对我来说似乎是错误的。另一种方法是使用包含 TextBoxes 的 Adorner。我在Stackoverflow上找到了一个关于带有控件的装饰器的主题,但我不确定这种方法是否比另一种更好。

因此,如果有人有更好的解决方案,我将不胜感激。

提前致谢

4

1 回答 1

1

有一个Transform.Inverse属性,您可以使用它来“撤消”父控件的转换。因此,您基本上将父控件绑定到 MyTransform,并将所有子控件绑定到 MyTransform.Inverse。这样,变换将应用于孩子的位置,而不是他们的大小。

我同意它“感觉不对”,但我很确定这是您的最佳选择。

于 2016-04-28T13:24:43.197 回答