触发器不想工作。然而,它在风格上确实有效

时间:2012-05-03 12:56:55

标签: wpf xaml triggers

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

我得到&#34;&#39; IsMouseOver &#39;成员无效,因为它没有合格的类型名称&#34;。需要帮助来解决这个问题。

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

3 个答案:

答案 0 :(得分:2)

回答你的第一个问题:

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

FrameworkElement中,您可以使用:

EventTrigger

StyleControlTemplateDataTemplate,您可以使用:

EventTrigger,
Trigger or MultiTrigger,
DataTrigger or MultiDataTrigger

答案 1 :(得分:2)

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

答案 2 :(得分:1)

常规触发器和DataTriggers应该是Style,period。

您可以在示例中直接使用的唯一类型的触发器是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>