2012-07-17 36 views
0

我在WPF創建模板化hyperlinkbutton(窗口8 metro應用):綁定事件處理模板化的超鏈接

<ControlTemplate TargetType="HyperlinkButton"> 
<HyperlinkButton> 
    <VisualStateManager.VisualStateGroups> 
     <VisualStateGroup x:Name="CommonStates"> 
      <VisualStateGroup.Transitions> 
       <VisualTransition To="PointerOver" GeneratedDuration="0:0:0.1"/> 
      </VisualStateGroup.Transitions>     
     </VisualStateGroup> 
     <VisualState x:Name="Normal"/> 
     <VisualState x:Name="PointerOver"> 
      <Storyboard> 
       <ColorAnimation Storyboard.TargetName="HyperlinkForegroundBrush" Storyboard.TargetProperty="Color" To="#FF011751"/> 
      </Storyboard> 
     </VisualState> 
    </VisualStateManager.VisualStateGroups> 
    <ContentPresenter Content={TemplateBinding Content}> 
     <ContentPresenter.Foreground> 
      <SolidColorBrush x:Name="HyperlinkForegroundBrush" Color="3FFB20404"/> 
     </ContentPresenter.Foreground> 
    </ContentPresenter> 
</HyperlinkButton> 

,這是hyperlinkbutton ::

<HyerlinkButton Style={StaticResource MainPageLinkStyle} x:Name="MoreDetailsHyperlinkButton" Content="More..." Click="MoreDetailsHyperlinkButton_Click"/> 

的樣式MainPageLinkStyle引用上面提到的樣式。

問題:超鏈接按鈕的點擊沒有得到執行。

請幫忙。

在此先感謝。

編輯: 相反hyperlinkbutton的單擊事件中,當我使用PointerPressed事件,鼠標右鍵點擊觸發此事件,而不是單擊鼠標左鍵....覺得奇怪,我。

+0

這是指WPF還是Metro XAML?他們不是同一個框架。 – 2012-07-17 17:35:22

+0

約翰,其地鐵XAML – 2012-07-17 17:43:29

+0

約翰,這可能在WPF?也許我可以將它與Metro XAML聯繫起來。 – 2012-07-17 17:55:18

回答

0

我找到了解決方案。下面是修改後的標記:

<ControlTemplate TargetType="HyperlinkButton"> 
<**Border**> 
    <VisualStateManager.VisualStateGroups> 
      <VisualStateGroup x:Name="CommonStates"> 
        <VisualStateGroup.Transitions> 
         <VisualTransition To="PointerOver" GeneratedDuration="0:0:0.1"/> 
       </VisualStateGroup.Transitions>     
      </VisualStateGroup> 
      <VisualState x:Name="Normal"/> 
      <VisualState x:Name="PointerOver"> 
       <Storyboard> 
         <ColorAnimation Storyboard.TargetName="HyperlinkForegroundBrush" Storyboard.TargetProperty="Color" To="#FF011751"/> 
        </Storyboard> 
      </VisualState> 
     </VisualStateManager.VisualStateGroups> 
     <ContentPresenter Content={TemplateBinding Content}> 
      <ContentPresenter.Foreground> 
        <SolidColorBrush x:Name="HyperlinkForegroundBrush" Color="3FFB20404"/> 
      </ContentPresenter.Foreground> 
     </ContentPresenter> 
</**Border**> 

作爲標記強調,我需要使用邊界類,而不是超鏈接。我無法理解爲什麼,但這似乎是爲我工作的可能解決方案。