0

我现在正在阅读WinRT-XAML 教程,我无法弄清楚为什么 WebView 控件不执行与其他控件相同的入口动画。有一个部分Adding animations and transitions解释了它不是预期的,并且需要一个带有动画的情节提要来做到这一点。

我找到了将转换应用于 StandardStyles.xaml 中其他控件的设置器的来源。

<Style x:Key="LayoutRootStyle" TargetType="Panel">
    <Setter Property="Background" Value="{StaticResource ApplicationPageBackgroundThemeBrush}"/>
    <Setter Property="ChildrenTransitions">
        <Setter.Value>
            <TransitionCollection>
                <EntranceThemeTransition/>
            </TransitionCollection>
        </Setter.Value>
    </Setter>
</Style>

看起来这应该将 EntranceThemeTransition 应用于具有这种样式的面板的每个子控件 - 或者它应该只将过渡应用于其直接子控件。它似乎两者兼而有之。

此外,我希望没有任何定位信息的控件与它们的父级一起被动画化。情况似乎并非如此,WebView 的直接父级动画就好了。

在这种情况下,是什么让 WebView 如此特别?除了它不是默认模板的一部分之外。为什么我们需要添加一个 PopInThemeAnimation 和 Storyboard 来让这个控件移动,为什么它的移动速度与它应该在里面的控件不同!?

4

1 回答 1

2

AWebView是一个特殊控件,它位于其自己的 HWND(经典 WinAPI 窗口)中,而不是在深度平面空间(jupiter 窗口)中呈现的其他典型的基于 XAML 的 UI。因此,它位于所有其他控件之上的自己的空域(将其捆绑起来)。当您想要对其进行动画处理或在其上覆盖一些其他内容(例如应用栏)时,您通常会将其替换为填充了与WebViewBrushWebView 同步的其他控件(例如 Rectangle)。

我认为(某些)主题动画使用Windows 动画管理器或其他机制而不是常规 Storyboard,并且 WebView 控件可能无法很好地使用它。

我的建议是 - 如果它不适用于您尝试使用的东西(EntranceThemeTransition) - 使用不同的东西(基于故事板的常规动画)。

于 2013-03-27T00:07:13.533 回答