获取 ViewBox 中项目的大小(“拉伸”后)
考虑以下几点:
假设窗口大小为 1024x768,ViewBox 填充整个窗口, 这意味着文本框在屏幕上非常大。
我想获取当前屏幕上文本框的大小。 如果我得到 DesiredSize 或 ActualSize 甚至 RenderedSize,我总是得到 100。
有什么建议吗?
更新:我可能可以获得 ViewBox 的 ActualWidth
并将其除以它的子级的 ActualWidth
,这将给我当前的比例因子和以某种方式将其作为财产公开,但我不确定这是最好的方法。
Consider the following:
Let's say the Window is 1024x768 and the ViewBox fills the entire window,
this means the TextBox is really large on the screen.
I want to get the size of the TextBox as it is currently on the screen.
If I get DesiredSize or ActualSize or even RenderedSize I always get 100.
Any suggestions?
Update: I could probably get the ActualWidth
of the ViewBox and divide it by the ActualWidth
of it's child which would give me the current scale factor and expose that as a property somehow but I'm not sure that's the best way to do it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这就是获取
ViewBox
对其子项施加的ScaleTransform
的方法:这里
viewBox
是文本框所在的 ViewBox。然后,您只需乘以
scale.ScaleX * textBox.ActualWidth
即可获得屏幕坐标中的大小,但这变得更加容易!要直接在屏幕坐标中获取该文本框的大小,您可以执行以下操作:
This is how you get the
ScaleTransform
theViewBox
exerts on its children:Here
viewBox
is the ViewBox that textbox sits in.Then you can just multiply
scale.ScaleX * textBox.ActualWidth
and you get the size in Screen coordinatesBut it gets even easier! To get that textbox's size directly in Screen Coordinates you do: