Xaml 在Metro样式的应用程序上计算ViewBox比例因子

Xaml 在Metro样式的应用程序上计算ViewBox比例因子,xaml,windows-8,windows-runtime,viewbox,winrt-xaml,Xaml,Windows 8,Windows Runtime,Viewbox,Winrt Xaml,在XAML Windows 8 Metro风格的应用程序中,是否有任何方法可以获得可视框缩放其内容的比例因子?您可以将其实际宽度/实际高度与其子项的实际宽度/实际高度进行比较。请注意,如果将其拉伸设置为Fill,则这些可能会有所不同。您可以尝试在其内部添加网格视图,并从布局属性到内容自定义其列和行。将其宽度和高度设置为“自动”,并让其拉伸宽度和高度。此外,你应该让你的内容拉伸或设置witdh和高度自动再次 另一方面,您可以尝试体验混合工具…具有此功能的扩展 public static doubl

在XAML Windows 8 Metro风格的应用程序中,是否有任何方法可以获得可视框缩放其内容的比例因子?您可以将其
实际宽度/实际高度
与其子项的
实际宽度/实际高度
进行比较。请注意,如果将其拉伸设置为
Fill

,则这些可能会有所不同。您可以尝试在其内部添加网格视图,并从布局属性到内容自定义其列和行。将其宽度和高度设置为“自动”,并让其拉伸宽度和高度。此外,你应该让你的内容拉伸或设置witdh和高度自动再次

另一方面,您可以尝试体验混合工具…

具有此功能的扩展

public static double GetChildScaleX(this Viewbox viewbox)
{
    if (viewbox.Child == null)
        throw new InvalidOperationException("Can't tell effective scale of a Viewbox child for a Viewbox with no child.");

    var fe = viewbox.Child as FrameworkElement;

    if (fe == null)
        throw new InvalidOperationException("Can't tell effective scale of a Viewbox child for a Viewbox with a child that is not a FrameworkElement.");

    if (fe.ActualWidth == 0)
        throw new InvalidOperationException("Can't tell effective scale of a Viewbox child for a Viewbox with a child that is not laid out.");

    return viewbox.ActualWidth / fe.ActualWidth;
}
GetChildScaleY
是相同的,但有高度