uso top examples elemento diferencias bottom wpf css-position

top - ¿Cómo se hace el posicionamiento relativo en WPF?



text position css (2)

Buena pregunta. Hasta donde yo sé, necesitamos tener un panel personalizado diferente para obtener esta función. Como WPF se basa en la Jerarquía visual, no hay forma de tener este tipo de estructura plana para los elementos de la plataforma.

Pero aquí hay un truco para hacer esto. Coloque sus elementos en la misma posición y proporcione desplazamiento relativo utilizando RenderTransform.TranslateTransform. De esta forma, las X e Y de tu TranslateTransfrom siempre estarán relacionadas con el otro elemento.

¿Cómo se puede colocar elementos relativamente en WPF? El modelo estándar es usar gestores de disposición para todo, pero ¿qué sucede si desea colocar elementos (en un lienzo, por ejemplo) simplemente en función de la posición de otros elementos?

Por ejemplo, puede desear que un elemento (por ejemplo, un botón) se una al lado de otro (quizás un panel) independientemente de la posición o el diseño de ese panel. Cualquiera que haya trabajado con herramientas de ingeniería (SolidWorks, AutoCad, etc.) está familiarizado con este tipo de posicionamiento relativo.

Obligar a todo en los administradores de diseño (los diferentes paneles de WPF) no tiene mucho sentido para ciertos escenarios, donde no le importa que algún contenedor principal mantenga los elementos y no quiere que los otros niños se vean afectados por un cambio en el diseño / apariencia de cada uno. ¿WPF es compatible con este modelo de posicionamiento relativo de alguna manera?


En lugar de poner (como en su ejemplo) un botón directamente en el lienzo, puede colocar un panel de pila en el lienzo, alineado horizontalmente, y colocar los dos botones allí.

Al igual que:

<Canvas> <StackPanel Canvas.Left="100" Canvas.Top="100" Orientation="Horizontal"> <Button>Button 1</Button><Button>Button 2</Button> </StackPanel> </Canvas>

Creo que es bastante flexible cuando usa más de 1 diseño en un formulario, y puede crear casi cualquier configuración que desee.