Карусель UWP Microsoft Toolkit отключить салфетки - PullRequest
0 голосов
/ 13 ноября 2018

Я использую управление Каруселью от Microsoft.UWP.Toolkir.Controls https://docs.microsoft.com/en-us/windows/communitytoolkit/controls/carousel

Когда мы нажимаем и удерживаем левую кнопку мыши, мы можем провести предмет, как в планшете, фоэ. Это как «панорамный» свиток.

Итак, это нормально работает, но когда мы держим и перемещаем указатель (или палец в планшете) на первом и последнем элементе, мы получаем белый «фон» (смещение в мегабайтах) слева (первый элемент), вправо ( последний пункт) стороны.

Когда мы двигаемся, и элемент получает некоторое (я не могу проверить) смещение по горизонтали -> он возвращается в предыдущее состояние.

начальная позиция карусели

мы удерживаем и перемещаем первый элемент, слева от него получаем некоторое смещение

Можем ли мы получить и изменить это смещение или отключить эту опцию для первого и последнего элемента?

1 Ответ

0 голосов
/ 14 ноября 2018

Можем ли мы получить и изменить это смещение или отключить эту опцию для первого и последнего элемента?

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, вам придется скомпилировать для него собственную версию и добавить ссылку на нее в свой проект.

...