我的屏幕左侧需要一个可以滑入和滑出的MenuBar。由于这个应用程序是crossplattform,它应该在左侧,而不是像Bottom上的常用ApplicationBar或Top上的NavigationBar。
到目前为止我所拥有的是:
private bool isTapped = false;
private void TEST_TAP(object sender, TappedRoutedEventArgs e)
{
System.Diagnostics.Debug.WriteLine("TAP");
Storyboard s = new Storyboard();
DoubleAnimation doubleAni = new DoubleAnimation();
doubleAni.To = -30;
if (isTapped) doubleAni.To = 0;
doubleAni.Duration = new Duration(TimeSpan.FromMilliseconds(500));
Storyboard.SetTarget(doubleAni, LOGO);
Storyboard.SetTargetProperty(doubleAni, "(UIElement.RenderTransform).(TranslateTransform.XProperty)");
s.Children.Add(doubleAni);
s.Begin();
}
我要移动的栏是网格或应该是类似的东西。但这甚至无法移动单个图像。我用Google搜索了一下,用"(UIElement.RenderTransform).(TranslateTransform.XProperty)"
替换了"(Canvas.Left)"
。这不会崩溃但也不会移动任何其他东西。
任何想法或解决方案?
修改
好吧,我玩了很多,现在我知道(并测试过)"(Canvas.Left)"
仅适用于Canvas。好极了。
我的应用程序看起来像这样:Scrollview(水平)和内部是一个带有列的Grid,用于显示不同的内容。最左边的列包含另一个网格,我想要移出屏幕并再次返回。但是如何使用Storyboard-animation移动网格?
如果有人想到采用不同的方式做到这一点,如果它以任何方式运作,我都会感到非常高兴。
EDIT2:
它似乎是使用Storyboard.SetTargetProperty(doubleAni, "(UIElement.RenderTransform).(CompositeTransform.TranslateX)");
的方式,但它一直在崩溃= /
答案 0 :(得分:0)
在使用此转换之前,您需要添加它:
Storyboard s = new Storyboard();
DoubleAnimation doubleAni = new DoubleAnimation();
doubleAni.To = to;
doubleAni.From = from;
doubleAni.Duration = new Duration(TimeSpan.FromMilliseconds(250));
// THIS LINE IS NEW
NaviBar.RenderTransform = new CompositeTransform();
Storyboard.SetTarget(doubleAni, NaviBar);
Storyboard.SetTargetProperty(doubleAni, "(UIElement.RenderTransform).(CompositeTransform.TranslateX)");
s.Children.Add(doubleAni);
s.Begin();
这就是诀窍。它仍然不是我想要的功能,但最难的部分 - 动画 - 现在可以使用。