未知的HyperlinkButton边距/带有样式/模板的填充

创造力

我正在尝试将html转换为xaml并将其用作起点我的应用程序是Windows Phone 8.1通用应用程序。除了超链接之外,这段代码非常有效。看来HyperlingButton具有一些隐藏的边距或填充,我无法通过将其设置为0来固定其样式。

超链接用红色边框标记: 在此处输入图片说明

我的风格在这里:

    <Style TargetType="HyperlinkButton" x:Key="UnderlineHyperlinkButton">
        <Setter Property="BorderThickness" Value="0" />
        <Setter Property="Margin" Value="0,0,0,0" />
        <Setter Property="Padding" Value="0,0,0,0"/>
        <Setter Property="FontSize" Value="18"/>
        <Setter Property="FontFamily" Value="{ThemeResource PhoneFontFamilyNormal}"/>
        <Setter Property="FontWeight" Value="Normal"/>          
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="HyperlinkButton">
                    <TextBlock Style="{StaticResource TextStylePostBody}">
                        <Underline>
                            <Run Text="{Binding Path=Content, Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}" />
                        </Underline>
                    </TextBlock>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

TextBlock的样式:

        <Style x:Key="TextStylePostBody" TargetType="TextBlock" BasedOn="{StaticResource BaseTextBlockStyle}">
        <Setter Property="Foreground" Value="Black"/>
        <Setter Property="FontSize" Value="18"/>
        <Setter Property="Padding" Value="0,0,0,0"/>
        <Setter Property="Margin" Value="0,0,0,0"/>
        <Setter Property="TextWrapping" Value="Wrap"/>
        <Setter Property="TextTrimming" Value="WordEllipsis"/>
        <Setter Property="TextWrapping" Value="WrapWholeWords"/>
    </Style>

我可以用边距中的硬编码值来修复它,<Setter Property="Margin" Value="0,-9, 4,-4"/>但是看起来不太好。

创建超链接的代码在这里:

    private static Inline GenerateHyperLink(HtmlNode node)
    {
        Span s = new Span();            
        InlineUIContainer iui = new InlineUIContainer();
        HyperlinkButton hb = new HyperlinkButton() { NavigateUri = new Uri(node.Attributes["href"].Value, UriKind.Absolute), Content = CleanText(node.InnerText) };
        hb.Style = ( Style )Application.Current.Resources[ "UnderlineHyperlinkButton" ];
        iui.Child = hb;
        s.Inlines.Add(iui);
        return s;
    }

有什么我想念的吗?

更新:使用此XAMl代码进行了快速测试:

        <StackPanel Grid.Row="0" Orientation="Horizontal">
        <TextBlock Foreground="Black" FontSize="18" FontWeight="Normal" FontFamily="Segroe UI">TextBlock</TextBlock>
        <RichTextBlock>
        <Paragraph>
                <Run Foreground="Black" FontSize="18" FontWeight="Normal" FontFamily="Segroe UI">
                <Run.Text>Run text</Run.Text>
            </Run>
                <InlineUIContainer>
                    <HyperlinkButton FontSize="18" FontFamily="Segroe UI" FontWeight="Normal" Margin="0" Padding="0,0,0,0">Link Text</HyperlinkButton>
                </InlineUIContainer>
            </Paragraph>
        </RichTextBlock>
    </StackPanel>

并得到了这个:

在此处输入图片说明

设定MarginHyperlinkButton-9(上):

在此处输入图片说明

这不是其他文字或InlineUIContainer的问题,更换HyperlinkButtonTextBlock修复边距:

在此处输入图片说明

创造力

决定避免InlineUIContainerHyperlinkButton由于对齐和格式问题。我已将其替换<Underline>Link附加属性。本文中的更多信息

编辑:不知道为什么,但是我错过了运行时API有一个Hyperlink很好的专用类。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

未知的填充/边距问题

来自分类Dev

带有边距的分组WPF ListView样式问题

来自分类Dev

向带有浮动的元素添加边距/填充

来自分类Dev

带有样式组件的样式链接

来自分类Dev

CSS未知边距/填充出现

来自分类Dev

带有样式的特定条形栏

来自分类Dev

Angular - 带有样式的 InnerHtml

来自分类Dev

带有tic标签的输出图,内部没有gnuplot的边距/填充?

来自分类Dev

跨度有边距和填充

来自分类Dev

等间距的元素,以百分比表示,并带有填充/边距

来自分类Dev

多个div带有边距以填充父级宽度

来自分类Dev

100%高度Div,带有边距或填充滚动条问题

来自分类Dev

如何用div填充边距空间并指定样式?

来自分类Dev

卡片带有边距右侧

来自分类Dev

导航栏上的填充使其从页面溢出,带有边距/填充的内部容器也不起作用

来自分类Dev

带有svg样式url(#id)的模板带有文件名填充

来自分类Dev

带有样式的居中弹出窗口

来自分类Dev

带有样式化字形的Rails link_to标签

来自分类Dev

带有样式显示的Div:表格高度错误

来自分类Dev

以编程方式创建带有样式的按钮

来自分类Dev

使用带有样式组件的env()CSS变量

来自分类Dev

使用带有样式组件的材料系统的更好方法

来自分类Dev

从HTML到.docx是否带有样式ID /名称?

来自分类Dev

带有样式表(XSL)的CakePHP XmlView

来自分类Dev

如何在本机JavaScript中获取带有边距,填充,边框的元素宽度/高度(无jQuery)

来自分类Dev

在将填充,边距,边框设置为0后,<button>具有多余的边距

来自分类Dev

CSS-元素之间的边距没有边距/填充?

来自分类Dev

未知边距影响布局

来自分类Dev

C ++中的101 Qt样式表页边距填充黑客指南。设置填充无效

Related 相关文章

热门标签

归档