2008-12-13 24 views
10

Creé un UserControl que consiste en un par de elipses y etiquetas. Lo agregué muy bien a otra forma y las cosas se veían bastante elegantes.WPF ¿Cómo obtener un UserControl para heredar un botón?

Luego comencé a agregar algunos controladores de eventos y descubrí que el control que hice no exponía un evento Click. Oops. Fácil de arreglar, ¿verdad? Simplemente regrese al código subyacente en el UserControl que hice y deje que herede el botón.

Desafortunadamente, hacer esto provocó un mensaje de "Declaraciones parciales de MyControl no debe especificar diferentes clases base". Esto fue una sorpresa ya que no he declarado ninguna otra clase base. La búsqueda del parcial en cuestión tampoco arrojó ningún resultado.

¿Hay alguna manera de solucionar este problema? Si no, ¿cuál sería la solución más fácil aquí? Mi objetivo es simplemente obtener un evento Click en UserControl.

Respuesta

11

otras clases base Sí, has declararon :) :) Sólo la confianza del compilador UserControl

Al escribir <UserControl ...></UserControl> en XAML, usted está de subclases. Si desea crear una subclase de un Botón, use <Button ...></Button> en su lugar y ": Botón" en el archivo de código subyacente.

Pero te recomiendo encarecidamente que no subclass Button, es una tarea exagerada para ti. Puede usar el evento MouseLeftButtonUp en lugar del evento Click.

+2

El evento MouseLeftButtonUp depende del botón que siempre hace clic con el mouse. Cuando un usuario presiona una tecla de la barra espaciadora, el evento Click se activa pero MouseLeftButtonUp no (la barra espaciadora no es un botón izquierdo del mouse). –

Cuestiones relacionadas