2014-01-15 2 views
0

У меня есть форма с TabControl, которая содержит несколько TabItems. Каждый из TabItems содержит ScrollViewer, который содержит некоторый контент, содержащий контент.Позиция прокрутки в ScrollViewer?

Моя проблема - если размер формы и TabControl и содержимое содержаться таким образом, что ScrollViewer отображает вертикальные полосы прокрутки, содержимое отображается вертикально по центру ScrollViewer. Чтобы увидеть верхнюю часть контента, пользователю необходимо вручную прокрутить вверх.

Как ни странно, когда размер таков, что отображаются горизонтальные полосы прокрутки, содержимое изначально выровнено влево, и это то, что я хочу.

Как сделать эти ScrollViewers открытыми с помощью прокрутки, инициализированной вверху?

<ParentUserControl> 
    <Grid> 
     <TabControl> 
      <TabItem> 
       <ScrollViewer> 
        <Grid> 
         // Assorted Junk 
        </Grid> 
       </ScrollViewer> 
      </TabItem> 
      <TabItem> 
       <ScrollViewer> 
        <ChildUserControl /> 
       </ScrollViewer> 
      </TabItem> 
      <TabItem> 
       <ScrollViewer> 
        <OtherChildUserControl /> 
       </ScrollViewer> 
      </TabItem> 
     </TabControl> 
    </Grid> 
</ParentUserControl> 
+0

Опубликовать свой текущий XAML. –

+0

Надеюсь, вы не против, что я изменил 'TabItem' на' ScrollViewer' в вашем заголовке, чтобы он более точно отражал ваш вопрос. – Sheridan

ответ

0

Я думаю, что происходит событие ScrollIntoView. Это решение работало для меня в прошлом: Stop WPF ScrollViewer automatically scrolling to perceived content

+0

Я добавил обработчик для RequestBringIntoView для каждого из ScrollViewer, и в нем установлен e.Handled = true. Событие запускается, и обработчик выполняется, но поведение не изменяется. –

+0

Возможно, вам потребуется добавить обработчик RequestBringIntoReview к элементу управления, который отображается. Попробуйте поместить его либо в ChildUserControl, и в OtherChildUserControl, TabItem, либо в TabControl. Для меня я менял видимость StackPanel, вызывающего автоматический прокрутки scrollviewer. – DLeh

+1

Помещение обработчика RequestBringIntoView на содержимое ScrollViewers, а не на ScrollViewers, решило проблему. Благодарю. –

Смежные вопросы