触发器不想工作。但是它确实当风格

问题描述:

<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> 

我得到的“因为它没有限定的类型名称‘IsMouseOver’成员无效”工作。需要帮助解决这个问题。触发器不想工作。但是它确实当风格

第二个问题。 我可以在我的按钮触发器中更改lineNewGame的参数吗?怎么样?

+0

因此事件触发器。我可以在我的按钮事件触发器中更改lineNewGame的参数吗? – NDQuattro

@NDQuattro,为什么会吸?通过添加2多行到您的代码我得到它为我工作....

<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> 
+0

我是新手(遗忘风格继承。非常感谢 – NDQuattro

要回答你的第一个问题:

你可以使用UIElement.IsMouseOverButton.Content避免此错误消息。但是接下来你会遇到下一个问题:“触发器集合成员必须是EventTrigger类型”。

FrameworkElement你可以使用:

EventTrigger 

StyleControlTemplateDataTemplate可以使用:

EventTrigger, 
Trigger or MultiTrigger, 
DataTrigger or MultiDataTrigger 
+0

是的,现在明白了。谢谢 – NDQuattro

定期触发器以及DataTriggers是为了在一种风格,时期。

在你的例子中,你可以直接使用的唯一一种触发器是EventTrigger,然后你需要定义一个动画(在故事板中),当事件触发时它将运行。

您可以直接虽然做到这一点:

<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> 
+1

真的很糟糕( – NDQuattro

+0

不,检查我编辑的答案。 –