超過

2012-12-27 48 views
1

我有一個按鈕定義爲更改按鈕上的文字和圖像上鼠標的前景如下:超過

<Button x:Name="ContactLink" Canvas.Left="20" Canvas.Top="223" Style="{StaticResource HyperlinkButton}" Click="ContactLink_Clicked"> 
    <WrapPanel> 
     <Rectangle Width="15" Height="15"> 
      <Rectangle.Fill> 
       <VisualBrush Stretch="Fill" Visual="{StaticResource appbar_new_window}" /> 
      </Rectangle.Fill> 
     </Rectangle> 
     <TextBlock Margin="5 0 0 0" FontWeight="SemiBold" Text="GET IN TOUCH" /> 
    </WrapPanel> 
</Button> 

正如標題所說,我想定義一個樣式,其改變的TextBlock和的前景VisualBrush。到目前爲止,我有以下風格,這是行不通的。它改變了文本塊的前景以及BlackBrush資源的定義。

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <ControlTemplate x:Key="HyperlinkButtonTemplate" TargetType="{x:Type Button}"> 
     <WrapPanel> 
      <TextBlock Cursor="Hand"> 
        <ContentPresenter /> 
      </TextBlock> 
     </WrapPanel> 
     <ControlTemplate.Triggers> 
      <Trigger Property="Button.IsMouseOver" Value="True"> 
       <Setter Property="TextBlock.Foreground" Value="#0071bc" /> 
      </Trigger> 
     </ControlTemplate.Triggers> 
    </ControlTemplate> 

    <Style x:Key="HyperlinkButton" TargetType="{x:Type Button}"> 
     <Setter Property="Template" Value="{StaticResource HyperlinkButtonTemplate}" /> 
    </Style> 
</ResourceDictionary> 

任何幫助它得到它的工作將非常感激。

+0

你的視覺畫筆有矢量圖像? –

+0

是的。它有一個矢量圖像,因爲它可以在這裏找到:http://modernuiicons.com –

+0

要更清楚你想改變基於前景色的矢量圖像的顏色? –

回答

0

你只需要刪除您觸發

<Trigger Property="Button.IsMouseOver" Value="True"> 
       <Setter Property="TextBlock.Foreground" Value="#0071bc" /> 
</Trigger> 
+0

我按照你的建議修改了風格,但顏色仍然沒有改變。 –

+0

爲我工作!鼠標懸停時前景會發生變化 – user1064519

0

也許裏面定義爲時已晚的SolidColorBrush,但我有同樣的問題,並設法解決它。 只需設置TextBlock的名稱屬性,即可在觸發器中引用該名稱。

<TextBlock Cursor="Hand" Name="MyTextBlock"> 
      <ContentPresenter /> 
</TextBlock> 

<ControlTemplate.Triggers> 
      <Trigger Property="Button.IsMouseOver" Value="True"> 
       <Setter TargetName="MyTextBlock" Property="Foreground" Value="#0071bc"/> 
      </Trigger> 
</ControlTemplate.Triggers>