2013-07-07 4 views
0

Я использую Blend + Sketchflow Preview для Visual Studio 2012, я хочу удалить подчеркивания из HyperlinkButton.Удалить underline в HyperlinkButton

Вот мой код:

<HyperlinkButton x:Name="PoliciesTxt" Content="Policies" FontSize="18.667" Foreground="#FF003366" NavigateUri="http://google.com" FontWeight="Bold" CharacterSpacing="-1"/> 

Я уже пробовал использовать атрибут TextDecorations, но она не существует в этой версии XAML.

Любые идеи?

ответ

1

Добавьте следующую Resrouce на страницу (в моем случае, я просто добавили его на страницу App.xaml)

<!--Application Resources--> 
<Application.Resources> 
<Style x:Key="HyperlinkButtonStyle" TargetType="HyperlinkButton"> 
<Setter Property="Foreground" Value="White"/> 
<Setter Property="Background" Value="Transparent"/> 
<Setter Property="FontSize" Value="16"/> 
<Setter Property="Padding" Value="0"/> 
<Setter Property="Template"> 
<Setter.Value> 
<ControlTemplate TargetType="HyperlinkButton"> 
<Border Background="Transparent"> 
<VisualStateManager.VisualStateGroups> 
<VisualStateGroup x:Name="CommonStates"> 
<VisualState x:Name="Normal"/> 
<VisualState x:Name="MouseOver"/> 
<VisualState x:Name="Pressed"> 
<Storyboard> 
<DoubleAnimation Duration="0" Storyboard.TargetName="TextElement" 
Storyboard.TargetProperty="Opacity" To="0.5" /> 
</Storyboard> 
</VisualState> 
<VisualState x:Name="Disabled"> 
<Storyboard> 
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="TextElement" 
Storyboard.TargetProperty="Foreground"> 
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneDisabledBrush}" /> 
</ObjectAnimationUsingKeyFrames> 
</Storyboard> 
</VisualState> 
</VisualStateGroup> 
</VisualStateManager.VisualStateGroups> 
<Border Background="{TemplateBinding Background}" Margin="{StaticResource 
PhoneHorizontalMargin}" Padding="{TemplateBinding Padding}" > 
<TextBlock x:Name="TextElement" Text="{TemplateBinding Content}" HorizontalAlignment=" 
{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding 
VerticalContentAlignment}" TextWrapping="Wrap" TextDecorations="none"/> 
</Border> 
</Border> 
</ControlTemplate> 
</Setter.Value> 
</Setter> 
</Style> 
</Application.Resources> 

Теперь все, что вам нужно сделать, это падение управления HyperlinkButton на страницу и установить стиль следующим образом:

<HyperlinkButton Style="HyperlinkButtonStyle" /> 
2

Вы должны изменить стиль по умолчанию HyperlinkButton, скопируйте приведенный ниже код на вашем этом App.xaml файле.

Сначала необходимо добавить следующее пространство имен в App.xaml

Xmlns: VSM = "CLR-имен: System.Windows; сборочные = System.Windows"

<Application.Resources> 

     <Style x:Key="HyperlinkButtonStyle" x:Name="HyperlinkButtonStyle" TargetType="HyperlinkButton"> 
      <Setter Property="Foreground" Value="#FF73A9D8" /> 
      <Setter Property="Padding" Value="2,0,2,0"/> 
      <Setter Property="Cursor" Value="Hand"/> 
      <Setter Property="HorizontalContentAlignment" Value="Left"/> 
      <Setter Property="VerticalContentAlignment" Value="Top"/> 
      <Setter Property="Background" Value="Transparent" /> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="HyperlinkButton"> 
         <Grid Cursor="{TemplateBinding Cursor}" Background="{TemplateBinding Background}"> 
          <vsm:VisualStateManager.VisualStateGroups> 
           <vsm:VisualStateGroup x:Name="CommonStates"> 
            <vsm:VisualState x:Name="Normal"/> 
            <vsm:VisualState x:Name="MouseOver"> 
             <Storyboard> 
              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="UnderlineTextBlock" Storyboard.TargetProperty="Visibility" Duration="0"> 
               <DiscreteObjectKeyFrame KeyTime="0"> 
                <DiscreteObjectKeyFrame.Value> 
                 <Visibility>Visible</Visibility> 
                </DiscreteObjectKeyFrame.Value> 
               </DiscreteObjectKeyFrame> 
              </ObjectAnimationUsingKeyFrames> 
             </Storyboard> 
            </vsm:VisualState> 
            <vsm:VisualState x:Name="Pressed"> 
             <Storyboard> 
              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="UnderlineTextBlock" Storyboard.TargetProperty="Visibility" Duration="0"> 
               <DiscreteObjectKeyFrame KeyTime="0"> 
                <DiscreteObjectKeyFrame.Value> 
                 <Visibility>Visible</Visibility> 
                </DiscreteObjectKeyFrame.Value> 
               </DiscreteObjectKeyFrame> 
              </ObjectAnimationUsingKeyFrames> 
             </Storyboard> 
            </vsm:VisualState> 
            <vsm:VisualState x:Name="Disabled"> 
             <Storyboard> 
              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="DisabledOverlay" Storyboard.TargetProperty="Visibility" Duration="0"> 
               <DiscreteObjectKeyFrame KeyTime="0"> 
                <DiscreteObjectKeyFrame.Value> 
                 <Visibility>Visible</Visibility> 
                </DiscreteObjectKeyFrame.Value> 
               </DiscreteObjectKeyFrame> 
              </ObjectAnimationUsingKeyFrames> 
             </Storyboard> 
            </vsm:VisualState> 
           </vsm:VisualStateGroup> 
           <vsm:VisualStateGroup x:Name="FocusStates"> 
            <vsm:VisualState x:Name="Focused"> 
             <Storyboard> 
              <DoubleAnimation Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Opacity" Duration="0" To="1"/> 
             </Storyboard> 
            </vsm:VisualState> 
            <vsm:VisualState x:Name="Unfocused"/> 
           </vsm:VisualStateGroup> 
          </vsm:VisualStateManager.VisualStateGroups> 
          <TextBlock 
          x:Name="UnderlineTextBlock" 
          Text="{TemplateBinding Content}" 
          HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
          VerticalAlignment="{TemplateBinding VerticalContentAlignment}" 
          Margin="{TemplateBinding Padding}" 
          TextDecorations="Underline" 
          Visibility="Collapsed"/> 
          <TextBlock Canvas.ZIndex="1" 
          x:Name="DisabledOverlay" 
          Text="{TemplateBinding Content}" 
          Foreground="#FFAAAAAA" 
          HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
          VerticalAlignment="{TemplateBinding VerticalContentAlignment}" 
          Margin="{TemplateBinding Padding}" 
          Visibility="Collapsed"/> 
          <ContentPresenter 
          x:Name="contentPresenter" 
          Content="{TemplateBinding Content}" 
          ContentTemplate="{TemplateBinding ContentTemplate}" 
          VerticalAlignment="{TemplateBinding VerticalContentAlignment}" 
          HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
          Margin="{TemplateBinding Padding}"/> 
          <Rectangle x:Name="FocusVisualElement" Stroke="#FF6DBDD1" StrokeThickness="1" Opacity="0" IsHitTestVisible="false" /> 
         </Grid> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

    </Application.Resources> 

И вы также применить стиль к HyperlinkButton

<HyperlinkButton X:Name="Link" Content="Hola" Style="{StaticResource HyperlinkButtonStyle}"/> 
+0

это сработало для меня;) –

Смежные вопросы