【发布时间】:2015-04-01 20:50:14
【问题描述】:
我有以下代码,其中我在主网格 (LayoutRoot) 下隐藏了一个 WebView,以便稍后可以制作滑动动画:
<Page...>
<Grid x:Name="LayoutRoot">
...
<Grid x:Name="ContentRoot">
...
</Grid>
<WebView...>
<WebView.RenderTransform>
<CompositeTransform TranslateY="{Binding ElementName=LayoutRoot,
Path=ActualHeight}"/> <!--Does not work-->
</WebView.RenderTransform>
</WebView>
</Grid>
</Page>
当我第一次在设计器中键入{Binding ElementName=...} 行时,WebView 会出现在 Grid 的正下方,就像它应该的那样。但是,当我重新构建解决方案或运行应用程序时,WebView 只会遮盖整个 LayoutRoot。
无论我绑定什么/无论控件是什么,都会发生这种情况;但是,绑定到 exact 相同的表达式将在设计器和手机中正确显示。为了证明我在说什么:
<Button Width="{Binding ElementName=LayoutRoot, Path=ActualHeight}"> <!--Works perfectly, both on designer and phone-->
<Button.RenderTransform>
<CompositeTransform SomeProperty={Binding ElementName=SomeElement, Path=SomePath}"/> <!--This does not work-->
</Button.RenderTransform>
</Button>
除了为此编写 C# 代码之外,还有什么方法可以绑定到 LayoutRoot.ActualHeight?
【问题讨论】:
标签: xaml data-binding windows-phone-8.1 winrt-xaml elementname