2011-03-05 1 views
0

Je crée une application avec WPF. J'y implémente l'interface IScrollInfo pour obtenir la zone visible de la toile. Je redéfinissant la méthode MeasureOverride(Size availableSize) pour obtenir la fenêtre, mais je reçois une erreur que je ne suis pas en mesure de comprendre:Erreur: Erreur Le nom 'Enfants' n'existe pas dans le contexte actuel

protected override Size MeasureOverride(Size availableSize) 
     { 

      foreach (UIElement child in Children) 
      { 

       child.Measure(availableSize); 
       resultSize.Width = Math.Max(resultSize.Width, 
       child.DesiredSize.Width); 
       resultSize.Height = Math.Max(resultSize.Height, 
         child.DesiredSize.Height); 
         extent.Width += child.DesiredSize.Width; 
      } 

      resultSize.Width = double.IsPositiveInfinity(availableSize.Width)? resultSize.Width : availableSize.Width; 
      resultSize.Height = double.IsPositiveInfinity(availableSize.Height)? resultSize.Height : availableSize.Height; 
      extent.Height = resultSize.Height; 

      if ((_viewport != resultSize || _extent != extent) && ScrollOwner != null) 

      { 
         _viewport = resultSize; 
         _extent = extent; 

         ScrollOwner.InvalidateScrollInfo(); 
      } 

      return resultSize; 
     } 

Qu'est-ce que les enfants en elle ..

Répondre

0

Lorsque vous utilisez une toile, les enfants être:

de MSDN Canvas:

Children Gets a UIElementCollection of child elements of this Panel. (Inherited from Panel.)

Tous les "sous-éléments" qui sont directement le contenu de la toile. Dans votre cas, vous devez les déplacer maintenant en fonction de l'état de défilement réel.

Donc, si les enfants n'existent pas vous ne prolongerez pas la toile ...

Questions connexes