2011-01-12 85 views
2

我爲我的手風琴創建了一個HeaderTemplate,我希望在標題的一側顯示文本塊,在右側顯示超鏈接。顯示器工作正常,但點擊事件不會在用戶點擊時調用,我猜測B/C頭本身正在捕獲點擊展開/合同。Silverlight中的超鏈接AccordionItem HeaderTemplate

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

有沒有辦法讓超鏈接響應事件,而不實際上創建一個新的控制?

更新:它看起來像標題設置所有子控件禁用時擴大這就是爲什麼鏈接不工作。它將在您摺疊手風琴項目時起作用。所以,現在的問題是,我如何防止超鏈接被禁用?

回答

2

嘿查理,我只是偶然爲Epic720回答這個問題。您必須更改鎖定的VisualState。

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>