Trigger no quiere trabajar. Sin embargo, funciona bien cuando está en estilo.

<Button Name="btnNewGame" Margin="120,292,450,180" Style="{StaticResource mainLobbyBtnStyle}">
        <Grid Height="35" Width="200">
            ...
            <Line Name="lineNewGame" X1="200" X2="200" Y1="0" Y2="35" ... />
        </Grid>
        <Button.Trigger>
            <Trigger Property="IsMouseOver" Value="true">
                <Setter Property="Content" Value="qwerty"/>
            </Trigger>
        </Button.Triggers>
</Button>

Yo obtengo "'IsMouseOver' el miembro no es válido porque no tiene un nombre de tipo calificado". Necesito ayuda para arreglar esto.

Y segunda pregunta. ¿Puedo cambiar los parámetros de líneaNuevoJuego en mi disparador de botón? ¿Cómo?

preguntado el 03 de mayo de 12 a las 13:05

Entonces desencadenador de eventos. ¿Puedo cambiar los parámetros de lineNewGame en el disparador de eventos de mi botón? -

3 Respuestas

@NDQuattro, ¿por qué apestaría eso? Al agregar 2 líneas más a su código, lo hice funcionar para mí ...

 <Button Name="btnNewGame" Margin="120,292,450,180">
     <Grid Height="35" Width="200">
         <Line Name="lineNewGame" X1="200" X2="200" Y1="0" Y2="35" ... />
     </Grid>
     <Button.Style>
         <Style TargetType="{x:Type Button}"
                BasedOn="{StaticResource mainLobbyBtnStyle}">
           <Style.Triggers> 
              <Trigger Property="IsMouseOver" Value="true">
                  <Setter Property="Content" Value="qwerty"/>
              </Trigger>
           </Style.Triggers> 
         </Style> 
     </Button.Style>
  </Button> 

contestado el 03 de mayo de 12 a las 14:05

Para responder a su primera pregunta:

Podrías usar UIElement.IsMouseOver y Button.Content para evitar este mensaje de error. Pero entonces tendría el siguiente problema: "Los miembros de la colección Triggers deben ser del tipo EventTrigger".

In FrameworkElement puedes usar:

EventTrigger

In Style, ControlTemplate, DataTemplate puedes usar:

EventTrigger,
Trigger or MultiTrigger,
DataTrigger or MultiDataTrigger

contestado el 03 de mayo de 12 a las 14:05

Los disparadores regulares, así como los disparadores de datos, están destinados a estar en un estilo, punto.

El único tipo de disparador que puede usar directamente como lo está haciendo en su ejemplo es EventTrigger, luego debe definir una animación (en un guión gráfico) que se ejecutará cuando se active un evento.

Sin embargo, puedes hacerlo directamente:

<Button>
   <Button.Style>
      <Style Target="Button">
         <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="true">
                <Setter Property="Content" Value="qwerty"/>
            </Trigger>
         </Style.Triggers>
      </Style>
   </Button.Style>
</Button>

contestado el 03 de mayo de 12 a las 14:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.