<Style x:Key="ButtonStyle1" TargetType="{x:Type Button}"> <Setter Property="BorderThickness" Value="0"/> <Setter Property="Height" Value="18" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Grid x:Name="grid" > <Rectangle x:Name="rectangle" Fill="#02FFFFFF"/> <Path x:Name="path" Data="M0.5,0.5 L9.5,0.5 L9.5,2.5 L0.5,2.5 z" Fill="White" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Center" Width="10" Height="3"/> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsPressed" Value="True"> <Setter Property="Fill" TargetName="rectangle" Value="#FF990D0B"/> </Trigger> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Fill" TargetName="rectangle" Value="#33FFFFFF"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style>
今天上班时候 写一个很简单的事件触发事件,发现mousedown 事件死活触发不了。 后面找了一下原因, 原来坑爹的跟书写的顺序有关系, 如果mouse down 写在第一个,就只能触发mouse move 不能触发 down 只能按顺序, 先写move 再写down 才能按照顺序触发。 不知道是不是微软的一个bug。
正确的做法就是把顺序交换一下
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Fill" TargetName="rectangle" Value="#33FFFFFF"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Fill" TargetName="rectangle" Value="#FF990D0B"/>
</Trigger>
wpf 基本的xaml 事件触发器注意事项
最新推荐文章于 2024-07-12 17:58:50 发布