Tablet Scrolling

6 posts, 0 answers
  1. Nils
    Nils avatar
    5 posts
    Member since:
    Jun 2014

    Posted 24 Jun 2014 Link to this post

    Hi,

    we (our company and I) are using your RadGridView in our application. It works fine with an desktop pc (input by mouse), but if we are using a tablet pc (input by touchscreen) we have some problems with the performance.
    Because of these issus we develop a small WPF application with the MS DataGrid and your RadGridView. The DataGrid scroll-performance is perfectly but your RadGridView is stuttering.

    Code:
    <!-- MS WPF -->
     <DataGrid
                TextElement.FontSize="15"
                Width="1260"
                Height="325"
                DockPanel.Dock="Top"
                AutoGenerateColumns="False"
                CanUserAddRows="False"
                SelectionMode="Single"
                VirtualizingPanel.IsVirtualizing="False"
                VirtualizingPanel.VirtualizationMode="Recycling"
                VirtualizingPanel.ScrollUnit="Pixel"
                ScrollViewer.IsDeferredScrollingEnabled="True"
                EnableColumnVirtualization="False"
                EnableRowVirtualization="False"
                IsReadOnly="True"
                ItemsSource="{Binding Path=CachedListe}">
                <DataGrid.Columns>
                    <DataGridTemplateColumn
                        Width="80">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <StackPanel
                                    Orientation="Horizontal">
                                    <Button
                                        Margin="1"
                                        Command="{Binding Path=Open.Command}"
                                        Content="WPF"></Button>
                                    <telerik:RadButton
                                        Margin="1"
                                        Command="{Binding Path=Open.Command}"
                                        Content="Telerik"></telerik:RadButton>
                                </StackPanel>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                    <DataGridTextColumn
                        Width="81"
                        Binding="{Binding Path=Id}"
                        Header="Nummer"></DataGridTextColumn>

                    <DataGridTextColumn
                        Width="150"
                        Binding="{Binding Path=Bezeichnung}"
                        Header="Geschäft"></DataGridTextColumn>

                    <DataGridTextColumn
                        Width="140"
                        Binding="{Binding Path=AnsprechpartnerName}"
                        Header="Ansprechpartner"></DataGridTextColumn>

                    <DataGridTextColumn
                        Width="120"
                        Binding="{Binding Path=Strasse}"
                        Header="Strasse"></DataGridTextColumn>

                    <DataGridTextColumn
                        Width="66"
                        Binding="{Binding Path=PLZ}"
                        Header="PLZ"></DataGridTextColumn>

                    <DataGridTextColumn
                        Width="140"
                        Binding="{Binding Path=Ort}"
                        Header="Ort"></DataGridTextColumn>

                    <DataGridTextColumn
                        Width="100"
                        Binding="{Binding Path=Gebiet.Bezeichnung}"
                        Header="Gebiet"></DataGridTextColumn>
                </DataGrid.Columns>
            </DataGrid>

    <!-- Telerik-->

            <telerik:RadGridView
                Width="1260"
                Height="325"
                DockPanel.Dock="Top"
                ScrollMode="Deferred"
                Visibility="Visible"
                telerik:GridViewVirtualizingPanel.IsVirtualizing="False"
                IsReadOnly="True"
                AutoGenerateColumns="False"
                x:Name="StandorteGrid"
                RowHeight="25"
                GroupRenderMode="Flat"
                ItemsSource="{Binding Path=Liste}"
                CanUserDeleteRows="False"
                CanUserInsertRows="False"
                CanUserReorderColumns="False"
                CanUserFreezeColumns="False"
                EnableColumnVirtualization="False"
                EnableRowVirtualization="False">
                <!--<telerik:RadGridView.SortDescriptors>
                    <telerik:SortDescriptor
                        Member="PLZ"
                        SortDirection="Ascending">
                    </telerik:SortDescriptor>
                    <telerik:SortDescriptor
                        Member="Strasse"
                        SortDirection="Ascending">
                    </telerik:SortDescriptor>
                </telerik:RadGridView.SortDescriptors>-->
                <telerik:RadGridView.Columns>
                    <!--<telerik:GridViewDataColumn
                        Width="80">
                        <telerik:GridViewDataColumn.CellTemplate>
                            <DataTemplate>
                                <StackPanel
                                    Orientation="Horizontal">
                                    <Button
                                        Margin="1"
                                        Command="{Binding Path=Open.Command}"
                                        Content="WPF"></Button>
                                </StackPanel>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellTemplate>
                    </telerik:GridViewDataColumn>-->
                    <telerik:GridViewDataColumn
                        x:Name="ColNummer"
                        Width="81"
                        DataMemberBinding="{Binding Path=Id}">
                        <telerik:GridViewDataColumn.Header>
                            <TextBlock
                                Text="Nummer" />
                        </telerik:GridViewDataColumn.Header>
                    </telerik:GridViewDataColumn>
                    <telerik:GridViewDataColumn
                        x:Name="ColGeschaeft"
                        DataMemberBinding="{Binding Path=Bezeichnung}"
                        Width="150"
                        TextWrapping="Wrap">
                        <telerik:GridViewDataColumn.Header>
                            <TextBlock
                                Text="Geschäft" />
                        </telerik:GridViewDataColumn.Header>
                    </telerik:GridViewDataColumn>
                    <telerik:GridViewDataColumn
                        x:Name="ColAnsprech"
                        DataMemberBinding="{Binding Path=AnsprechpartnerName}"
                        Width="140"
                        TextWrapping="Wrap">
                        <telerik:GridViewDataColumn.Header>
                            <TextBlock
                                Text="Ansprechpartner" />
                        </telerik:GridViewDataColumn.Header>
                    </telerik:GridViewDataColumn>
                    <telerik:GridViewDataColumn
                        x:Name="ColStrasse"
                        DataMemberBinding="{Binding Path=Strasse}"
                        Width="120"
                        TextWrapping="Wrap">
                        <telerik:GridViewDataColumn.Header>
                            <TextBlock
                                Text="Strasse" />
                        </telerik:GridViewDataColumn.Header>
                    </telerik:GridViewDataColumn>
                    <telerik:GridViewDataColumn
                        x:Name="ColPlz"
                        DataMemberBinding="{Binding Path=PLZ}"
                        Width="66">
                        <telerik:GridViewDataColumn.Header>
                            <TextBlock
                                Text="PLZ" />
                        </telerik:GridViewDataColumn.Header>
                    </telerik:GridViewDataColumn>
                    <telerik:GridViewDataColumn
                        x:Name="ColOrt"
                        DataMemberBinding="{Binding Path=Ort}"
                        Width="140"
                        TextWrapping="Wrap">
                        <telerik:GridViewDataColumn.Header>
                            <TextBlock
                                Text="Ort" />
                        </telerik:GridViewDataColumn.Header>
                    </telerik:GridViewDataColumn>
                    <telerik:GridViewDataColumn
                        x:Name="ColGebiet"
                        DataMemberBinding="{Binding Path=Gebiet.Bezeichnung}"
                        Width="100"
                        TextWrapping="Wrap">
                        <telerik:GridViewDataColumn.Header>
                            <TextBlock
                                Text="Gebiet" />
                        </telerik:GridViewDataColumn.Header>
                    </telerik:GridViewDataColumn>


                    <telerik:GridViewDataColumn
                        x:Name="ColLetzterBesuch"
                        DataMemberBinding="{Binding Path=Besuch.DatumCheckIn}"
                        DataFormatString="{}{0:dd.MM.yyyy}"
                        Width="100">
                        <telerik:GridViewDataColumn.Header>
                            <TextBlock>
    <Run
                                    Text="letzter" />
    <LineBreak />
    <Run
                                    Text="Besuch" />
                            </TextBlock>
                        </telerik:GridViewDataColumn.Header>
                    </telerik:GridViewDataColumn>
                </telerik:RadGridView.Columns>
            </telerik:RadGridView>

    Now my question, how can we improve our code?

    Greatings and thanks in advance
    Nils



  2. Nick
    Admin
    Nick avatar
    593 posts

    Posted 26 Jun 2014 Link to this post

    Hello Nils,

    I noticed you have set the EnableRow/ColumnVirtualization properties to false. Is there a specific reason for disabling the Vitualization mechanism? This will introduce major performance issues, especially on machines with lower system specs. 

    Furthermore, depending on your version of our controls, you may be experiencing an additional performance hit on tablet pc's, due to the fact that there is a service running that triggers the build of the AutomationTree of RadGridView. You can check if this is the case, by disabling the TabletInputService from TaskManager, and test the performance again after that. 

    Let me know how it goes. 

    Regards,
    Nik
    Telerik
     
    Check out Telerik Analytics, the service which allows developers to discover app usage patterns, analyze user data, log exceptions, solve problems and profile application performance at run time. Watch the videos and start improving your app based on facts, not hunches.
     
  3. Nils
    Nils avatar
    5 posts
    Member since:
    Jun 2014

    Posted 26 Jun 2014 in reply to Nick Link to this post

    Thanks for your response.

    I've tried both. EnableRow/ColumnVirtualization = true and I'm disable the TabletInputService.
    Nothing changed it's still stuttering.

    Have you some other ideas?

    Greatings and thanks in advance
    Nils

    Additional Information
    The tablet pc hardware:
    AMD C-50 2x 1Ghz
    Shared GPU
    2 GB RAM
    Windows 8.1 N
    1280x800 display



  4. Nick
    Admin
    Nick avatar
    593 posts

    Posted 27 Jun 2014 Link to this post

    Hi Nils,

    The suggestions I gave were the only out of the box guesses that could help. 
    I cannot say anything with certainty without having a look at a sample where I can reproduce the problem. Would it be possible to provide a small project which I can debug in order to provide a solution in the shortest terms? 


    Regards,
    Nik
    Telerik
     
    Check out Telerik Analytics, the service which allows developers to discover app usage patterns, analyze user data, log exceptions, solve problems and profile application performance at run time. Watch the videos and start improving your app based on facts, not hunches.
     
  5. Nils
    Nils avatar
    5 posts
    Member since:
    Jun 2014

    Posted 27 Jun 2014 in reply to Nick Link to this post

    Hi Nik

    Yes, I can send you our little testproject, but where can I upload or at witch emal-adresse can I send you the project as ".zip"-file.

    Regards,
    Nils 
  6. Dimitrina
    Admin
    Dimitrina avatar
    3769 posts

    Posted 30 Jun 2014 Link to this post

    Hello,

    You can open a support thread and attach the project there.

    If your company has purchased a license from another account, please ask the purchaser to add your email to the list of licensed developers so that we can provide you with all services suggest. In that way, you can get access to the support services (24-hour support tickets), the latest hotfixes and downloads from within your account.

    In general I would also suggest you going through the Degraded Performance help article suggesting on how you could improve the performance of RadGridView. 

    Regards,
    Didie
    Telerik
     
    Check out Telerik Analytics, the service which allows developers to discover app usage patterns, analyze user data, log exceptions, solve problems and profile application performance at run time. Watch the videos and start improving your app based on facts, not hunches.
     
Back to Top