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>

それを機能させるための助けをいただければ幸いです。

4

2 に答える 2

0

トリガー内で定義した SolidColorBrush を削除するだけです

<Trigger Property="Button.IsMouseOver" Value="True">
              <Setter Property="TextBlock.Foreground" Value="#0071bc" />
 </Trigger>
于 2012-12-27T15:56:29.737 に答える
0

おそらく手遅れですが、私は同じ問題を抱えていて、なんとか解決しました。TextBlock の name プロパティを設定するだけで、トリガーでその名前を参照できます。

<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>
于 2016-06-06T09:15:36.927 に答える