2015-09-15 7 views
11

में हाइपरलिंक बटन से अंडरलाइन निकालें मुझे HyperLinkButton की सामग्री में अंडरलाइन को हटाने की आवश्यकता है। TextDecorations इस XAML तत्व में मौजूद नहीं है।UWP XAML

<HyperlinkButton x:Name="BtnTeste" 
       Width="100" Height="50" BorderThickness="1" 
       HorizontalAlignment="Center" 
       Foreground="Black" Background="#ffffff" 
       NavigateUri="www.google.com" 
       Content="Execute" /> 

उत्तर

26

यह रेखांकनHyperlinkButtonशैली अंदर उजागर नहीं किया गया है। सौभाग्य से, आप इसे छुटकारा पाने के लिए आसानी से ContentTemplate ओवरराइड कर सकते हैं।

<HyperlinkButton Content="my link"> 
    <HyperlinkButton.ContentTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding}" /> 
     </DataTemplate> 
    </HyperlinkButton.ContentTemplate> 
</HyperlinkButton> 
+1

ग्रेट। काम। बहुत बहुत धन्यवाद! नमस्कार – fipcurren88

+0

आपका स्वागत है। जवाब के रूप में इसे स्वीकार करने पर विचार करें! :) –

2

बटन की उपस्थिति को बदलने के लिए आपको एक अलग टेम्पलेट लागू करना होगा। डिफ़ॉल्ट टेम्पलेट MSDN में पाया जा सकता है। रेखांकन को हटाने के लिए आपको "अंडरलाइन" से "कोई नहीं" टेम्पलेट में "अंडरलाइन टेक्स्टबॉक्स" की टेक्स्टडिकरेशन संपत्ति को बदलना होगा।

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

आप अपने पृष्ठ का एक संसाधन के रूप में यह घोषित करने और अपने बटन से यह संदर्भित द्वारा टेम्पलेट लागू कर सकते हैं।

एक नई शैली की घोषणा:

<Page.Resources> 
    <Style x:Key="NoUnderlineHyperlinkButtonStyle" TargetType="HyperlinkButton"> 
     <!--template from above here--> 
    </Style> 
</Page.Resources> 

यह संदर्भित:

<HyperlinkButton Style="{StaticResource NoUnderlineHyperlinkButtonStyle}">No Underline!</HyperlinkButton> 
+1

आम तौर पर मैं इस के लिए सहमत होगा, लेकिन दोस्त win10/UWP साथ काम कर रहा है और अपने उदाहरण एक Silverlight टेम्पलेट है। Win10 [शैली टेम्पलेट] (https://msdn.microsoft.com/en-us/library/windows/apps/Mt299132.aspx) थोड़ा अलग है और अतिरिक्त वस्तु प्रदान करने वाली अतिरिक्त वस्तु मौजूद नहीं है। मुझे यकीन नहीं है कि दस्तावेज़ों से डिफ़ॉल्ट शैली सही है, क्योंकि मैं वहां एक सामग्री प्रस्तुतकर्ता हूं, इसलिए यह देखने के लिए उत्सुक होगा कि वास्तविक टेम्पलेट क्या है यदि ओपी बस राइट-क्लिक किया गया-> टेम्पलेट संपादित करें ताकि हम कर सकें सत्य का स्रोत देखें। –

4

बस इस तरह करते हैं:

<HyperlinkButton> 
    <TextBlock Text="Blahblah" /> 
</HyperlinkButton>