При загрузке формы свиток RadPanelBar идет вниз - PullRequest
0 голосов
/ 08 февраля 2019

В моем приложении WPF у меня есть несколько RadPanelItems внутри моего RadPanelBar, и при загрузке формы все панели будут открыты.

Но иногда полоса прокрутки опускается вниз, что делает последний PanelItem видимым вместоfirst RadPanelItem.

XAML:

 <telerik:RadPanelBar Name="panelScroll" Grid.Row="0" VerticalAlignment="Stretch"  telerik:StyleManager.Theme="Windows8" ExpandMode="Multiple">
//5 RadPanelItem
 </telerik:RadPanelBar>

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

Я пытался, как приведенный ниже код выполняется при загрузке формы,

Метод 1: (xaml.cs)

ScrollViewer scrollViewer = GetVisualChild<ScrollViewer>(panelScroll);

if (scrollViewer != null)
   scrollViewer.ScrollToTop(); //Or ScrollToHome

Метод 2: WrappedRadPanelBar со средством просмотра прокрутки (ViewModel)

    public class ScrollViewerBehavior
    {
        public static bool GetAutoScrollToTop(DependencyObject obj)
        {
            return (bool)obj.GetValue(AutoScrollToTopProperty);
        }

        public static void SetAutoScrollToTop(DependencyObject obj, bool value)
        {
            obj.SetValue(AutoScrollToTopProperty, value);
        }

        public static readonly DependencyProperty AutoScrollToTopProperty =
            DependencyProperty.RegisterAttached("AutoScrollToTop", typeof(bool), typeof(ScrollViewerBehavior), new PropertyMetadata(false, (o, e) =>
            {

                var scrollViewer = o as System.Windows.Controls.ScrollViewer;
                if (scrollViewer == null)
                {
                    return;
                }
                if ((bool)e.NewValue)
                {
                    scrollViewer.ScrollToTop();
                    SetAutoScrollToTop(o, false);
                }
            }));
    }


        public bool ResetScroll
        {
            get { return m_bResetScroll; }
            set
            {
                if (m_bResetScroll != value)
                {
                    m_bResetScroll = value;
                    OnPropertyChanged();
                }
            }
        }

<ScrollViewer Converter:ScrollViewerBehavior.AutoScrollToTop="{Binding ResetScroll, Mode=TwoWay}">

Я все еще получаю ту же проблему.В любом случае я могу сделать полосу прокрутки вверх во время загрузки формы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...