2017-11-15 9 views
1

私はジェスチャーでStacklayoutを移動するメカニズムを使用しています。 StackLayoutのY位置の変化を検出する別のイベントがありますか? StackLayoutの位置が上下にパンされているときにキャッチしたいという意味です。StackLayoutのY位置を検出するには

<StackLayout x:Name="bottomDrawer" BackgroundColor="Olive" AbsoluteLayout.LayoutBounds="0.5,1.00,0.9,0.04" AbsoluteLayout.LayoutFlags="All"> 
     <StackLayout.GestureRecognizers> 
      <PanGestureRecognizer PanUpdated="PanGestureHandler" /> 
     </StackLayout.GestureRecognizers> 
</StackLayout> 

答えて

1

StackLayout階層内のクラスである)BindableObjectPropertyChangingPropertyChangedのイベントがあります。

したがって、YHeight、および/またはLayoutBoundsプロパティの変更にバインドすることができます。イベントを使用して

例:

aStackLayoutObject.PropertyChanging += (sender, e) => 
{ 
    switch (e.PropertyName) 
    { 
     case "Y": 
      Log.WriteLine($"{e.PropertyName} : {(sender as StackLayout).Y}"); 
      break; 
     case "Height": 
      Log.WriteLine($"{e.PropertyName} : {(sender as StackLayout).Height}"); 
      break; 
     case "LayoutBounds": 
      Log.WriteLine($"{e.PropertyName}"; 
      break; 
}; 

aStackLayoutObject.PropertyChanged += (sender, e) => 
{ 
    switch (e.PropertyName) 
    { 
     case "Y": 
      Log.WriteLine($"{e.PropertyName} : {(sender as StackLayout).Y}"); 
      break; 
     case "Height": 
      Log.WriteLine($"{e.PropertyName} : {(sender as StackLayout).Height}"); 
      break; 
     case "LayoutBounds": 
      Log.WriteLine($"{e.PropertyName}"; 
      break; 
}; 
+0

ありがとうございます!それは素晴らしい作品です。 –

関連する問題