2012-03-29 5 views
0

J'ai ce problème: Après l'instanciation de cette fenêtre, ouvrez tous les expandeurs imbriqués sur le côté droit. (il y en a 7). Le dernier contient des éléments. (TextBoxes) Essayez de faire glisser le GridSplitter. Tout va bien, ça fonctionne couramment. MAIS! Dès que je clique sur l'un des TextBox (peu importe lequel), le glisser devient fou (après une chute de souris parfois 3 secondes +). Après avoir cliqué sur dans la zone de texte de ces messages de débogage apparaissent dans la sortie:GridSplitter se déplaçant très lentement

Après cela, le traînement lent fou a lieu. Dans la fenêtre de débogage et d'aller en pause à l'étape suivante sont ces messages affichés:

'WpfApplication1.vshost.exe' (Managed): Loaded 'C:\Windows\assembly\GAC_MSIL\PresentationCore.resources\3.0.0.0_de_31bf3856ad364e35\PresentationCore.resources.dll' 
'WpfApplication1.vshost.exe' (Managed): Loaded 'C:\Windows\assembly\GAC_MSIL\UIAutomationTypes\3.0.0.0__31bf3856ad364e35\UIAutomationTypes.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'MS.Internal.UIElementHelper.InvalidateAutomationAncestors' 
Step into: Stepping over non-user code 'System.Windows.UIElement.Measure' 
Step into: Stepping over non-user code 'MS.Internal.Helper.MeasureElementWithSingleChild' 
Step into: Stepping over non-user code 'System.Windows.Controls.ScrollContentPresenter.MeasureOverride' 
Step into: Stepping over non-user code 'System.Windows.FrameworkElement.MeasureCore' 
Step into: Stepping over non-user code 'System.Windows.UIElement.Measure' 
Step into: Stepping over non-user code 'System.Windows.Controls.Grid.MeasureCellsGroup' 
Step into: Stepping over non-user code 'System.Windows.Controls.Grid.MeasureOverride' 
Step into: Stepping over non-user code 'System.Windows.FrameworkElement.MeasureCore' 
Step into: Stepping over non-user code 'System.Windows.UIElement.Measure' 
Step into: Stepping over non-user code 'System.Windows.Controls.ScrollViewer.MeasureOverride' 
Step into: Stepping over non-user code 'System.Windows.FrameworkElement.MeasureCore' 
Step into: Stepping over non-user code 'System.Windows.UIElement.Measure' 
Step into: Stepping over non-user code 'Microsoft.Windows.Themes.ClassicBorderDecorator.MeasureOverride' 
Step into: Stepping over non-user code 'System.Windows.FrameworkElement.MeasureCore' 
Step into: Stepping over non-user code 'System.Windows.UIElement.Measure' 
Step into: Stepping over non-user code 'System.Windows.Controls.Control.MeasureOverride' 
Step into: Stepping over non-user code 'System.Windows.Controls.TextBox.MeasureOverride' 
Step into: Stepping over non-user code 'System.Windows.FrameworkElement.MeasureCore' 
Step into: Stepping over non-user code 'System.Windows.UIElement.Measure' 
Step into: Stepping over non-user code 'System.Windows.Controls.WrapPanel.MeasureOverride' 

etc ...

CECI EST LE CODE: (ne juge pas la qualité, il est juste un test, s'il vous plaît)

<Window Title="Window 5" x:Class="WpfApplication1.Window5" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" /> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto" /> 
      <RowDefinition Height="Auto" /> 
     </Grid.RowDefinitions> 

     <Grid Grid.Row="0" Grid.Column="0"> 
      <Grid.ColumnDefinitions>     
       <ColumnDefinition Width="*" />     
      </Grid.ColumnDefinitions> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="Auto" />     
      </Grid.RowDefinitions> 
      <Expander Grid.Row="0" Grid.Column="0" IsTabStop="False"> 
       <Expander.Header> 
        <DockPanel> 
         <TextBlock DockPanel.Dock="Left" Text="Search:" Margin="0,0,3,0" VerticalAlignment="Center" /> 
         <Button DockPanel.Dock="Right" Margin="3,0,0,0" IsTabStop="False"> 
          <Button.Style> 
           <Style TargetType="Button"> 
           </Style> 
          </Button.Style> 
         </Button> 
         <Button DockPanel.Dock="Right" Margin="3" Content="_Search..." ToolTip="Tooltip search" IsTabStop="False" /> 
         <TextBox DockPanel.Dock="Left" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="3" MinWidth="200" TabIndex="1"> 
         </TextBox> 
        </DockPanel> 
       </Expander.Header> 
       <Expander.Content> 
        <Grid> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="*" /> 
          <ColumnDefinition Width="*" /> 
          <ColumnDefinition Width="*" /> 
          <ColumnDefinition Width="*" /> 
         </Grid.ColumnDefinitions> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="Auto" /> 
          <RowDefinition Height="Auto" /> 
         </Grid.RowDefinitions> 
         <TextBlock Grid.Row="0" Grid.Column="0" Text="Criteria 1:" VerticalAlignment="Center" HorizontalAlignment="Right" /> 
         <TextBox Grid.Row="0" Grid.Column="1" /> 
         <TextBlock Grid.Row="0" Grid.Column="2" Text="Criteria 1:" VerticalAlignment="Center" HorizontalAlignment="Right" /> 
         <TextBox Grid.Row="0" Grid.Column="3" /> 

         <TextBlock Grid.Row="1" Grid.Column="0" Text="Criteria 2:" VerticalAlignment="Center" HorizontalAlignment="Right" /> 
         <TextBox Grid.Row="1" Grid.Column="1" /> 
         <TextBlock Grid.Row="1" Grid.Column="2" Text="Criteria 2:" VerticalAlignment="Center" HorizontalAlignment="Right" /> 
         <TextBox Grid.Row="1" Grid.Column="3" /> 
        </Grid> 
       </Expander.Content> 
      </Expander> 
     </Grid> 

     <Border Grid.Row="1" Grid.Column="0" BorderThickness="1" CornerRadius="4"> 
      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="*" /> 
        <ColumnDefinition Width="Auto" /> 
        <ColumnDefinition Width="*" /> 
       </Grid.ColumnDefinitions> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="*" /> 
       </Grid.RowDefinitions> 

       <TextBlock Grid.Row="0" Grid.Column="0" Text="Found Matches..." FontStyle="Italic" Panel.ZIndex="100"> 
        <TextBlock.Style> 
         <Style TargetType="TextBlock"> 
          <Setter Property="Visibility" Value="Visible" />      
         </Style> 
        </TextBlock.Style> 
       </TextBlock> 
       <ListBox Grid.Row="0" Grid.Column="0" TabIndex="2"> 
        <ListBox.Style> 
         <Style TargetType="ListBox"> 
          <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled" /> 
          <Setter Property="BorderThickness" Value="0" /> 
          <Setter Property="Margin" Value="0,7,0,7" /> 
         </Style> 
        </ListBox.Style> 
        <ListBox.ItemContainerStyle> 
         <Style TargetType="ListBoxItem"> 
          <Setter Property="SnapsToDevicePixels" Value="true" /> 
          <Setter Property="OverridesDefaultStyle" Value="true" /> 
          <Setter Property="Template"> 
           <Setter.Value> 
            <ControlTemplate TargetType="ListBoxItem"> 
             <Border Margin="4,0,0,0" CornerRadius="6,0,0,6" SnapsToDevicePixels="true" Background="Transparent"> 
              <Grid> 
               <Grid.ColumnDefinitions> 
                <ColumnDefinition Width="*" /> 
                <ColumnDefinition Width="Auto" /> 
               </Grid.ColumnDefinitions> 
               <Grid.RowDefinitions> 
                <RowDefinition Height="Auto" /> 
               </Grid.RowDefinitions> 
               <ContentPresenter Grid.Column="0" /> 
               <Border Padding="10,0,10,0" CornerRadius="4" Grid.Column="1"> 
                <Path Width="13.2457" Height="12.8151" Stretch="Fill" Data="F1 M 78.1398,324.18L 52.5865,298.626C 51.6892,297.728 50.3385,297.459 49.1678,297.946C 47.9971,298.43 47.2305,299.574 47.2305,300.843L 60.6385,326.398L 47.2305,351.952C 47.2305,353.223 47.9971,354.364 49.1678,354.848C 49.5558,355.011 49.9638,355.09 50.3678,355.09C 51.1838,355.09 51.9852,354.77 52.5865,354.171L 78.1398,328.616C 78.7238,328.032 79.0598,327.224 79.0598,326.398C 79.0598,325.572 78.7238,324.764 78.1398,324.18 Z "> 
                 <Path.Style> 
                  <Style TargetType="Path"> 
                   <Setter Property="Fill" Value="#FF000000" /> 
                  </Style> 
                 </Path.Style> 
                </Path> 
                <Border.Style> 
                 <Style TargetType="Border"> 
                  <Setter Property="Visibility" Value="Visible" /> 
                  <Setter Property="Background" Value="Transparent" /> 
                 </Style> 
                </Border.Style> 
               </Border> 
              </Grid> 
             </Border> 
            </ControlTemplate> 
           </Setter.Value> 
          </Setter> 
         </Style> 
        </ListBox.ItemContainerStyle> 
       </ListBox> 

       <GridSplitter Grid.Row="0" Grid.Column="1" Focusable="False" HorizontalAlignment="Right" ResizeDirection="Columns" ResizeBehavior="PreviousAndNext" VerticalAlignment="Stretch"> 
        <GridSplitter.Style> 
         <Style TargetType="GridSplitter"> 
          <Setter Property="IsEnabled" Value="True" /> 
          <Setter Property="Width" Value="10" /> 
         </Style> 
        </GridSplitter.Style> 
       </GridSplitter> 

       <Border Grid.Row="0" Grid.Column="2" BorderThickness="0,2,2,2" CornerRadius="0,4,4,0"> 
        <ScrollViewer> 
         <Grid> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition Width="*" /> 
          </Grid.ColumnDefinitions> 
          <Grid.RowDefinitions> 
           <RowDefinition Height="Auto" /> 
           <RowDefinition Height="Auto" /> 
          </Grid.RowDefinitions> 

          <Button Grid.Row="0" Grid.Column="0" Content="Edit" HorizontalAlignment="Right" Margin="0,5,5,0" TabIndex="3"> 
           <Button.Style> 
            <Style TargetType="Button"> 
             <Setter Property="Focusable" Value="True" /> 
            </Style> 
           </Button.Style> 
          </Button> 

          <Expander Grid.Row="1" Grid.Column="0"> 
           <Expander> 
            <Expander> 
             <Expander> 
              <Expander> 
               <Expander> 
                <Expander> 
                 <Grid> 
                  <Grid.ColumnDefinitions> 
                   <ColumnDefinition Width="*" />                
                  </Grid.ColumnDefinitions> 
                  <Grid.RowDefinitions> 
                   <RowDefinition Height="Auto" /> 
                   <RowDefinition Height="Auto" /> 
                   <RowDefinition Height="Auto" />                 
                  </Grid.RowDefinitions> 

                  <Grid Grid.Row="0" Grid.Column="0" > 
                   <Grid.ColumnDefinitions> 
                    <ColumnDefinition Width="Auto" /> 
                    <ColumnDefinition Width="*" /> 
                   </Grid.ColumnDefinitions> 
                   <Grid.RowDefinitions> 
                    <RowDefinition Height="Auto" /> 
                   </Grid.RowDefinitions> 

                   <Path Grid.Row="0" Grid.Column="0" Margin="5" /> 
                   <TextBlock Grid.Row="0" Grid.Column="1" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left" TextAlignment="Left" /> 

                  </Grid> 

                  <WrapPanel Grid.Row="2" Grid.Column="0" Orientation="Horizontal"> 

                   <Grid Margin="5"> 
                    <Grid.RowDefinitions> 
                     <RowDefinition Height="Auto" /> 
                    </Grid.RowDefinitions> 
                    <Grid.ColumnDefinitions> 
                     <ColumnDefinition Width="*" /> 
                     <ColumnDefinition Width="*" /> 
                    </Grid.ColumnDefinitions> 

                   </Grid> 

                   <Grid Margin="5"> 
                    <Grid.RowDefinitions> 
                     <RowDefinition Height="Auto" /> 
                    </Grid.RowDefinitions> 
                    <Grid.ColumnDefinitions> 
                     <ColumnDefinition Width="*" /> 
                     <ColumnDefinition Width="*" /> 
                    </Grid.ColumnDefinitions> 

                   </Grid> 

                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBox /> 
                   <TextBlock Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="4" Text="Mega Text String Lorem ipsum et asdf asdf adsf asdf asdString Lorem ipsum et asdf asdf adsf asdf asdString Lorem ipsum et asdf asdf adsf asdf asd " FontSize="28" VerticalAlignment="Center" TextWrapping="Wrap" /> 

                  </WrapPanel> 
                 </Grid> 
                </Expander> 
               </Expander> 
              </Expander> 
             </Expander> 
            </Expander> 
           </Expander> 
          </Expander> 

         </Grid> 
        </ScrollViewer> 
       </Border> 

      </Grid> 
     </Border> 
    </Grid> 
</Window> 

Répondre

1

Je copiais votre code ... et l'application fonctionne rapide et je peux faire glisser le GridSplitter couramment et sans aucun problème tout en se concentrant un des TextBox -elements. Peut-être, vous devez exécuter l'application en mode non-débogage.

+0

Eh bien, je viens d'essayer toutes les configurations possibles, x86, x64 et Any CPU en mode de débogage/libération. Pas de changement. Avec chaque contrôle ajouté au bloc où sont toutes ces TextBoxes il est plus lent (avec 3 scrollviewers imbriqués ~ 25 secondes chaque glisser) –

+0

Je l'ai essayé sur d'autres machines avec les mêmes versions OS/.NET/correctifs installés et ça fonctionne vraiment couramment ! Que diable est avec mon installation .NET (toutes les machines ont été restaurer à partir de la même image) –

+0

bien .. je ne peux pas vraiment réinstaller l'installation. C'est le composant de base de win 7 apparemment .. –

Questions connexes