如果我们在保留内容的原始宽高比时使用带有Stretch =“UniformToFill”或Stretch =“Uniform”的
WPF(Silverlight)ViewBox,我们怎样才能知道应用于内容的当前缩放系数?
解决方法
看到这个问题:
Get the size (after it has been “streched”) of an item in a ViewBox
基本上,如果你有一个名为viewBox的ViewBox,你可以像这样获得ScaleTransform
ContainerVisual child = VisualTreeHelper.GetChild(viewBox,0) as ContainerVisual; ScaleTransform scale = child.Transform as ScaleTransform;
你也可以为ViewBox制作一个扩展方法,你可以像这样调用它
viewBox.GetScaleFactor();
ViewBoxExtensions
public static class ViewBoxExtensions { public static double GetScaleFactor(this ViewBox viewBox) { if (viewBox.Child == null || (viewBox.Child is FrameworkElement) == false) { return double.NaN; } FrameworkElement child = viewBox.Child as FrameworkElement; return viewBox.ActualWidth / child.ActualWidth; } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。