WP7 - Прокрутка ItemsControl (или ListBox) только на один элемент - PullRequest
0 голосов
/ 08 января 2012

Простой вопрос ...

Можно ли прокручивать ItemsControl всегда только одним элементом?

изм

Хорошо, я добавил свойство зависимости для VerticalOffest из ScrollView

var _listScrollViewer = elements.Where(x => x is ScrollViewer).FirstOrDefault() as ScrollViewer;

if (_listScrollViewer == null)
    return;

Binding binding = new Binding();
binding.Source = _listScrollViewer;
binding.Path = new PropertyPath("VerticalOffset");
binding.Mode = BindingMode.OneWay;
this.SetBinding(ListVerticalOffsetProperty, binding);

И

DependencyProperty ListVerticalOffsetProperty = DependencyProperty.Register(
  "ListVerticalOffset",
  typeof(double),
  typeof(SubscriptionFeed),
  new PropertyMetadata(0.0, OnListVerticalOffsetChanged));

public double ListVerticalOffset
{
    get { return (double)this.GetValue(ListVerticalOffsetProperty); }
    set { this.SetValue(ListVerticalOffsetProperty, value); }
}

private static void OnListVerticalOffsetChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
{
    // stop the scrolling by condition
}

НО

VerticalOffset изменяется с относительно низкой частотой, при более быстрой прокрутке элемент обычно пропускается ...

видео: http://screenr.com/mc3s

...