【发布时间】:2015-04-14 21:18:50
【问题描述】:
我正在尝试使用平移变换在用户手指移动时从上到下移动页面表单中的对象。我们应该看到页面内容,因为条形图从页面向下并位于底部。
就像 windows phone 8.1 中的操作中心一样。
请让我知道我们如何设计的任何想法。谢谢。
【问题讨论】:
我正在尝试使用平移变换在用户手指移动时从上到下移动页面表单中的对象。我们应该看到页面内容,因为条形图从页面向下并位于底部。
就像 windows phone 8.1 中的操作中心一样。
请让我知道我们如何设计的任何想法。谢谢。
【问题讨论】:
好问题!
我的第一个想法是做类似this 的事情。 您可以获取触摸输入位置,然后从屏幕顶部移动一个矩形,并根据触摸输入的 Y Cord 将其向下平移。
编辑: 好的,这就是你可以做的。
创建一个 Canvas 并将其放置在顶部的某个位置(我在折叠状态下将其高度设为 14)。
然后创建一个private void cn_ManipulationDelta(object sender, System.Windows.Input.ManipulationDeltaEventArgs e) 事件并让它设置画布的高度。我还添加了一个float i,以便稍后在用户在拉动事件期间放开它时使其弹回或覆盖整个屏幕。
private void cn_ManipulationDelta(object sender, System.Windows.Input.ManipulationDeltaEventArgs e)
{
cn.Height += e.DeltaManipulation.Translation.Y;
i = (float)e.CumulativeManipulation.Translation.Y;
}
就是这样。您还可以添加此事件以使其在用户松开时快速返回或覆盖全屏。
private void cn_ManipulationCompleted(object sender, System.Windows.Input.ManipulationCompletedEventArgs e)
{
if(i < 100)
{
cn.Height = 14;
}
else
{
cn.Height = Application.Current.Host.Content.ActualHeight;
}
}
当然,您可以添加更平滑的动画,让它慢慢回到折叠视图或填满整个页面。 我希望这会有所帮助!
【讨论】: