private void _contentGrid_ManipulationStarted(object sender, ManipulationStartedRoutedEventArgs e)
{
if (e.PointerDeviceType != PointerDeviceType.Touch)
{
return;
}
if (manipulationStatus == ManipulationStatus.None)
{
if (PivotItem != null && FrozenColumns > 0)
{
var pt = e.Position;
pt = this.TransformToVisual(_columnHeaderPanel).TransformPoint(pt);
var fx = _columnHeaderPanel.Columns.GetFrozenSize();
// adjust for scroll position
var sp = _columnHeaderPanel.ScrollPosition;
if (pt.X < 0 || pt.X > fx) pt.X -= sp.X;
var column = _columnHeaderPanel.Columns.GetItemAt(pt.X);
if (FrozenColumns > column)
{
startingCrossSlideLeft = startingCrossSlideRight = true;
}
}
if (_header != null)
{
var pt = e.Position;
pt = this.TransformToVisual(_header).TransformPoint(pt);
var rect = new Rect(0, 0, _header.ActualWidth, _header.ActualHeight);
if (rect.Contains(pt))
{
if (PivotItem != null)
{
startingCrossSlideLeft = startingCrossSlideRight = true;
}
manipulationOnHeaderOrFooter = true;
}
}
if (_footer != null)
{
var pt = e.Position;
pt = this.TransformToVisual(_footer).TransformPoint(pt);
var rect = new Rect(0, 0, _footer.ActualWidth, _footer.ActualHeight);
if (rect.Contains(pt))
{
if (PivotItem != null)
{
startingCrossSlideLeft = startingCrossSlideRight = true;
}
manipulationOnHeaderOrFooter = true;
}
}
}
}