Можем ли мы получить и изменить это смещение или отключить эту опцию для первого и последнего элемента?
Windows Community Toolkit с открытым исходным кодом, вы можете проверить Карусель исходный код.
То, что вы сказали ', когда мы держим и перемещаем указатель (или палец в планшете) на первом и последнем элементе, который мы получаем белым "background "(mb offset) левой (первый элемент), правой (последний элемент) стороны. ' просто нормально Манипуляция операция.Вы могли видеть эти операции в CarouselPanel.cs .
Чтобы достичь цели, вам нужно оценить в OnManipulationDelta
, если выбранный элемент является первым или последним элементом, вы можете прекратить манипулированиенапример:
internal void OnManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
var previousIndex = Carousel.SelectedIndex;
var delta = Carousel.Orientation == Orientation.Horizontal ? e.Delta.Translation.X : e.Delta.Translation.Y;
if ((previousIndex == 0 && delta>0)||(previousIndex==Children.Count-1 && delta<0))
{
return;
}
........
}
Приведенный выше код просто является моей простой реализацией, если вы считаете, что это нехорошо для вас, вы можете изменить его самостоятельно.
Затем, когда вы изменитеИсходный код в Windows Community Toolkit, вам придется скомпилировать для него собственную версию и добавить ссылку на нее в свой проект.