zoukankan      html  css  js  c++  java
  • Windows Phone中HyperlinkButton 去除下划线

    今天使用HyperlinkButton的时候用到一个问题 就是想把它的下划线去掉 但是找了半天没有找到他的属性里面包含有关于UnderLine的属性 

    于是在网上找资料 发现有一个用Blend修改模板的方法 但是我个人觉得比较麻烦 而且会生成一大堆的代码 。

    于是自己在看到有关ControlTemeplate知识的时候发现通过自己自定义模板可以解决 

    我的思路是吧HyperlinkButton的Content属性设置为空 再定义ControlTemeplate在里面加一个TextBlock用于显示没有下滑线的文本

    View Code
      <HyperlinkButton  Height="30"
                                 HorizontalAlignment="Left"
                                 Margin="100,90,0,0" 
                                 Name="hyperlinkButton2" 
                                 VerticalAlignment="Top" 
                                 Width="200" NavigateUri="/MainPage.xaml">
                    <HyperlinkButton.Template>
                        <ControlTemplate>
                            <!-- 下面是使用添加一个文本控件方法实现把下滑线去掉-->
                            <TextBlock TextAlignment="Center">导航</TextBlock>
                            
                            
                        </ControlTemplate>
                    </HyperlinkButton.Template>
                </HyperlinkButton>

    但是后面我有看到书上说这样子设置不好,因为HyperlinkButton的Content属性是object属性 所以我们就可以设置image、Panel等类型的值。

    书上提供的方法是使用ContentPresenter的Content属性来设置 因为他也是Object的类型。并且通过它还可以绑定HyperlinkButton本身的Content属性值并且没有下滑线

    View Code
     <HyperlinkButton Content="NAVIGATION">
                    <HyperlinkButton.Style>
                        <Style TargetType="HyperlinkButton">
                            <Setter Property="Template">
                                <Setter.Value>
                                    <ControlTemplate TargetType="HyperlinkButton">
                                        <Border>
                                        <ContentPresenter Content="{TemplateBinding Content}"/>
                                        </Border>
                                    </ControlTemplate>
                                </Setter.Value>
                            </Setter>
                        </Style>
                    </HyperlinkButton.Style>
                </HyperlinkButton>

    这里要注意点 在设置ControlTemplate的时候一定要设置TargetType属性的值 不然会报未处理的异常  我就是因为这个原因调试了一下午才发现 诶 伤不起呀。。。。。

    如果有知道的希望大家把为什么必须设置TargetType的原因告诉我 谢谢了

  • 相关阅读:
    filter函数示例
    组件里v-for示例
    操作数组的函数简介
    class绑定对象改进版
    python 全栈开发,Day6(函数进阶)
    python 全栈开发,Day5(函数初识)
    python 全栈开发,Day4(文件操作)
    python 全栈开发,Day3(集合,深浅copy)
    python 全栈开发,Day2(基础数据类型)
    python 全栈开发,Day1(python介绍,变量,if,while)
  • 原文地址:https://www.cnblogs.com/duolete/p/2490538.html
Copyright © 2011-2022 走看看