拖动网格并增加其宽度

时间:2015-08-31 11:15:38

标签: xaml windows-phone-8.1 winrt-xaml

如何在Windows Phone 8.1中拖动Grid元素并根据拖动的距离增加其宽度?假设我有一个50px宽的网格元素,然后将其拖到屏幕上的400px位置;我希望它相应地缩放,并且速度与拖动速度相同。

我正在尝试为此创建一个故事板,我可以操纵宽度,但是如何改变动画的速度以匹配拖动的速度?另外,如何使宽度取决于指针的位置?

1 个答案:

答案 0 :(得分:1)

您无需使用故事板。请参阅下面的代码。

XAML:

   <Grid x:Name="FlippedGrid" HorizontalAlignment="Left" ManipulationMode="TranslateX" ManipulationDelta="FlippedGridOnManipulationDelta"  Width="60" Height="100" Background="Aquamarine"/>

不要忘记设置ManipulationMode!

CS:

private void FlippedGridOnManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
    var delta = e.Delta.Translation.X;

    FlippedGrid.Width += delta;

    //TODO If you want check position, retrieve e.Position:
    //var position = e.Position;

    //TODO If you want change flip velocity
    //double velocity = 1.5;
    //FlippedGrid.Width += delta * velocty;
 }