我最近刚做了ToggleButton
的研究,他们的工作就像RadioButtons
,这正是我所需要的。
我的按钮上有Storyboard动画,当我点击它们时,它们显示为箭头,表明这是你的页面:
但是当你选择它们时,你可以看到其他人都被检查了。
这是我目前的代码(对于其中一个按钮,另一个是相同的):
<ToggleButton x:Name="btnToDo" Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="222" Click="Button_Click" Height="29" Margin="0,132,0,0">
<ToggleButton.Template>
<ControlTemplate TargetType="{x:Type ToggleButton}" >
<Grid>
<Image x:Name="Normal" Source="Images/Normal1.png" Width="281" HorizontalAlignment="Left"/>
<Image x:Name="Hover" Source="Images/Hover1.png" Opacity="0" Width="281" HorizontalAlignment="Left"/>
<Image x:Name="Pressed" Source="Images/ben.png" Stretch="Fill" Opacity="0"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Trigger.EnterActions>
<BeginStoryboard x:Name="ButtonCheckedStoryboardBegin"
Storyboard="{StaticResource MouseDownTimeLine}"/>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard x:Name="ButtonUncheckedStoryboardEnd"
Storyboard="{StaticResource MouseUpTimeLine}"/>
</Trigger.ExitActions>
</Trigger>
<Trigger Property="IsChecked" Value="False">
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource MouseUpTimeLine}"/>
</Trigger.EnterActions>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</ToggleButton.Template>
</ToggleButton>
我的MouseUpTimeLine
,MouseDownTimeLine
和MouseExitTimeLine
就是:
<Storyboard x:Key="MouseDownTimeLine" >
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Pressed" Storyboard.TargetProperty="Opacity" >
<SplineDoubleKeyFrame KeyTime="00:00:00.25" Value="1" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="MouseUpTimeLine">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Pressed" Storyboard.TargetProperty="Opacity" >
<SplineDoubleKeyFrame KeyTime="00:00:00.25" Value="1"/>
</DoubleAnimationUsingKeyFrames>
<Storyboard x:Key="MouseExitTimeLine">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Normal" Storyboard.TargetProperty="Opacity" >
<SplineDoubleKeyFrame KeyTime="00:00:00.00" Value="1"/>
</DoubleAnimationUsingKeyFrames>
所以我希望状态在IsChecked
为假时恢复正常,这应该是另一个按钮IsChecked
。
答案 0 :(得分:1)
RadioButton
并将其设计为看起来像您的按钮会让生活更轻松,以提供您所追求的行为。
您可以在MSN docs中找到信息和默认模板,并使用Blend使编辑模板变得相当简单,对于您的实例,您只需在设计器上放置RadioButton
,右键单击它,然后选择&#34;编辑模板 - &gt;编辑副本&#34;将控件模板的副本添加到视图中以编辑您的内容。
希望这会有所帮助,如果你遇到任何问题,我们会让你排序。干杯