J'ai un Maintenant, le problème est que, lors du défilement, les enfants visuels du Je comprends, que Y a-t-il un moyen simple de "couper" le merci,
Andrej P> itemsControl code> dans un
ScrollViewer code>. Les éléments du
itemsControl code> sont étendus à un
datatemplate code> qui consiste essentiellement en un
adorner code>. P>
adorner code> sont visibles en dehors de l'enveloppe code> ScrollViewer code>. Disons que je fais défiler à partir du décalage horizontal de 0 à 100, les enfants visuels du
Adorner code> se déplacent vers la gauche et sont visibles à côté du
ScrollViewer code>, bien qu'ils soient cachés. Réglage
Cliptobounds code> sur le
itemsControl code> ou le
ScrollViewer code> ne fonctionne pas. P>
adorner code> est rendu au-dessus de tous les éléments Z-commander sage, mais ils ne devraient vraiment pas être visibles dans de tels cas car avec le
ScrollViewer code>. L'élément
orné code> se comporte comme prévu et n'est pas visible via le
ScrollViewer code>. P>
adorner code> s, de sorte qu'ils ne sont visibles que dans la zone de défilement visible? P>
3 Réponses :
J'ai rencontré le même problème lors de la sous-classement du wPfoolkit DataGrid pour dessiner un adorateur autour de la cellule actuelle. P>
Le contenu de la ScrollViewer est rendu par une instance ScrollContentSenterPresenter. ScrollContentPresenter possède sa propre couche Adorner, accessible via la propriété ScrollContentPresenter.adornerLayer. P>
J'ai trouvé que mon Adorner se clipse correctement si je l'ajoute à cette couche. P>
J'utilise Visualtreehelper pour rechercher l'arborescence visuelle jusqu'à ce que je trouve un descendant de type ScrollContentPresenter. Jetez un oeil à la méthode de ce fil - WPF.CODEPLEX.COM/THRead/ Voir.aspx? Threadid = 34542 .
Réglage Cliptobounds code> sur le contrôle contenant ne suffit pas. Vous devez définir la propriété
ISclipenAcédée de l'adorner code> aussi. P>
C'était la meilleure solution pour moi.
Ma solution consistait à pousser une région de clip sur le contexte de dessin, rendant tout ce dont j'avais besoin et que vous avez la touche à la fin, comme ceci:
drawingContext.PushClip(new RectangleGeometry(new Rect(0, 0, this.AdornedElement.RenderSize.Width, this.AdornedElement.RenderSize.Height))); // continue drawing drawingContext.Pop();
Dans le thread suivant, Wei Zhou reconstitue la vision de ScrollViewer afin que l'adorateur du bouton soit contraint. Mettre en œuvre la sélection de la sélection - Conseil s'il vous plaît
Quelle version de .NET / WPF est-ce que cela s'est produit pour vous? J'essaie réellement de recréer ce comportement et je ne peux pas. Fondamentalement, je veux que mes ornières d'erreur affichent au-delà des limites de la vision de ScrollViewer (sans utiliser de popup)