Windows Phone HyperlinkButton without Underline

Windows Phone'da en çok kullanılan kontrollerden birisi hiç şüphesiz HyperlinkButton'dur. Sayfaya 1 adet HyperlinkButton ekleyip Content'ine text verip uygulamayı çalıştırdığımızda text'in altı çizili olarak geldiğini göreceksiniz. Bu durum WinPhone projelerinde pekte tercih edilen birşey değildir zira gözede hoş gelmemektedir. Altı çizgisiz HyperlinkButton kullanmak istediğimizde ise çok basit bir şekilde App.xaml içerisine Application.Resources'a style ekleyerek HyperlinkButton'un altındaki çzgiyi yok edebilirsiniz. Örnek kullanım aşağıdaki gibidir;

 

App.xaml sayfası

 

<Application.Resources>
        <Style x:Key="hlbutton_Style" 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>

App.xaml içerisine yukarıdaki eklemeleri yaptıktan sonra tek yapmanız gereken sayfaya eklediğiniz HyperlinkButton kontolüne Style olarak yukarıda oluşturduğumuz style'ı vermek,

 

<HyperlinkButton Style="{StaticResource hlbutton_Style}"/>

 

Add comment