2
<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的参数吗?如何?

4

3 回答 3

3

要回答您的第一个问题:

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

FrameworkElement您可以使用:

EventTrigger

Style,ControlTemplate中,DataTemplate您可以使用:

EventTrigger,
Trigger or MultiTrigger,
DataTrigger or MultiDataTrigger
于 2012-05-03T13:12:52.697 回答
3

@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> 
于 2012-05-03T13:39:25.257 回答
2

常规触发器和 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>
于 2012-05-03T13:15:53.373 回答