En WPF, tengo un scrollviewer con 7 grupos de grupos diferentes en él. Cada grupo de grupo es su propia sección individual para diferentes formas. Debido a que el scrollviewer es tan largo, he colocado una serie de botones en un panel de pila en el lado izquierdo del panel, y he completado el código para que al hacer clic en un botón se active el método BringIntoView para el correspondiente groupbox.BringIntoView Método
Mi pregunta es, ¿hay alguna manera de obligar a BringIntoView a colocar el grupo en la parte superior de la sección visible cada vez. De forma predeterminada, BringIntoView solo mueve el scrollviewer hasta que todo el grupo se encuentre dentro de la vista, no para que sea el elemento superior que se muestra. ¿Hay alguna forma de evitar esto?
Intenté usar ScrollToVerticalOffset, pero no pude encontrar la manera de obtener la posición correcta, principalmente porque dice que groupbox no tiene la propiedad Locate, que iba a usar para obtener la posición, luego lo configuré con ScrollToVerticalOffset . Una cosa en la que pensé mientras escribía esto fue hacer que cada botón presionara jusmp primero en el grupo de grupo superior, luego continuara inmediatamente con el correcto, pero esto parece una especie de hack-ish, y prefiero encontrar el camino correcto. :)
Solo un consejo, qué tal un poco menos de código y dividir el primer párrafo en párrafos más pequeños y más digeribles. De lo contrario, solo tenemos una pared de texto y una pared de código que no atraerá mucha atención y que alejará a la gente. Lea la excelente publicación de Jon Skeets sobre cómo hacer la pregunta perfecta aquí: http://msmvps.com/blogs/jon_skeet/archive/2010/08/29/writing-the-perfect-question.aspx – Kev
+1 para edición y mejora de la pregunta – SvenG