【问题标题】:Silverlight HyperlinkButton only content clickableSilverlight HyperlinkBut​​ton 仅内容可点击
【发布时间】:2014-03-29 01:35:39
【问题描述】:

我的页面上有一个 HyperlinkBut​​ton,内容只是纯文本。 但是,如下图所示,HyperlinkBut​​ton 通常比实际内容更宽。 这可能会让人感到困惑,因为人们只希望在实际点击链接时会发生一些事情。

如何使 HyperlinkBut​​ton 与内容一样宽,或者只有内容可点击? 我尝试设置样式,但没有帮助。

感谢您的帮助。 Dominic Rooijackers

http://i.msdn.microsoft.com/dynimg/IC56092.png

【问题讨论】:

  • 多种方式,HorizontalAlignment="Left"Width="Auto",或者还有很多其他方式,如果您想在模板级别进行,您只需添加<Setter Property="HorizontalAlignment" Value="Left"/>即可完成。

标签: silverlight


【解决方案1】:

欢迎来到stackoverflow..!!

对于你的问题,我想说你在使用风格的正确轨道上。您要做的只是从默认样式的超链接中删除视觉状态,并删除不必要的超链接元素。使用 Expression Blend,您都可以在几分钟内完成此操作。现在我让你的生活更轻松一些。您可以使用以下样式的超链接继续。

   <Style x:Key="ContentPresenterStyle1" TargetType="ContentPresenter"/>
        <Style x:Key="HyperlinkButtonStyle1" 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 Background="{TemplateBinding Background}" Cursor="{TemplateBinding Cursor}">
                            <VisualStateManager.VisualStateGroups>
                                <VisualStateGroup x:Name="CommonStates">
                                    <VisualState x:Name="Normal"/>
                                    <VisualState x:Name="Pressed"/>
                                </VisualStateGroup>
                            </VisualStateManager.VisualStateGroups>
                            <VisualStateManager.CustomVisualStateManager>
                                <ei:ExtendedVisualStateManager/>
                            </VisualStateManager.CustomVisualStateManager>
                            <ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Style="{StaticResource ContentPresenterStyle1}"/>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

祝你学习愉快..!! :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 2015-09-24
    • 2010-10-05
    相关资源
    最近更新 更多