我为手风琴创建了一个HeaderTemplate,我希望在标题的一侧显示一个文本块,在右侧显示一个超链接。显示工作正常,但是当用户点击时没有调用click事件,我猜b / c标题本身正在捕获点击以进行扩展/收缩。
<layoutToolkit:Accordion>
<layoutToolkit:AccordionItem IsSelected="True">
<layoutToolkit:AccordionItem.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Height="20">
<TextBlock Margin="0,0,700,0">Cancel Postcards</TextBlock>
<HyperlinkButton Content="Next Call" Foreground="Blue" Click="NextCancel_Click" />
</StackPanel>
</DataTemplate>
</layoutToolkit:AccordionItem.HeaderTemplate>
..... more code ....
有没有办法让超链接响应事件而无需实际创建新控件?
更新:看起来标题会在展开时将所有子控件设置为禁用,这就是链接无效的原因。折叠手风琴时它会起作用。那么,现在的问题是,如何防止超链接被禁用?
答案 0 :(得分:2)
Interactive items in Silverlight Accordion Header
这是您应该更改的AccordionItem的LockedStates VisualStateGroup。如果你需要,我可以发布整个风格,虽然它很冗长。
<VisualStateGroup x:Name="LockedStates">
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="0"/>
</VisualStateGroup.Transitions>
<VisualState x:Name="Locked">
<Storyboard>
<!--
<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="IsEnabled" Storyboard.TargetName="ExpanderButton">
<DiscreteObjectKeyFrame KeyTime="0" Value="False"/>
</ObjectAnimationUsingKeyFrames>
-->
</Storyboard>
</VisualState>
<VisualState x:Name="Unlocked">
<Storyboard>
<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="IsEnabled" Storyboard.TargetName="ExpanderButton">
<DiscreteObjectKeyFrame KeyTime="0" Value="True"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>