与超链接文本对齐

时间:2011-10-22 10:35:11

标签: c# wpf xaml

为什么hyperlink中的文字垂直对齐顶部,而不是与label相同的行。 知道为什么吗?

<StackPanel Grid.Row="1" Orientation="Horizontal" Margin="5">
    <Label   TextElement.FontSize="18" 
             FontWeight="Bold"
             HorizontalAlignment="Left"
             VerticalAlignment="Top"
             Name="LDOTextFilelable"
             Content="LDO Text File:"
             BorderThickness="0"/>



    <TextBlock Height="39" TextElement.FontSize="18" FontFamily="Verdana"  VerticalAlignment="Bottom"
               Name="LDOTextFilelink" Padding="5,0,0,0" >
        <Hyperlink Command="{Binding Path= SaveChangesCommand}" >
                    <TextBlock Text="{Binding Path=LdoFilePath}" Height="39"  VerticalAlignment="Bottom"/>
        </Hyperlink>
    </TextBlock>

</StackPanel>

enter image description here

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

在文本中放置超链接的首选方法如下:

<TextBlock Name="TextBlockWithHyperlink">
    <Run FontWeight="Bold">LDO Text File: </Run>
    <Hyperlink Command="{Binding Path= SaveChangesCommand}">
        <TextBlock FontFamily="Verdana" Text="{Binding Path=LdoFilePath}"/>
    </Hyperlink>
</TextBlock>

这样你就不会有对齐问题。

在WPF 4.0中,您可以使用简单的TextBlock替换内部Run

答案 1 :(得分:0)

WPF 中标签的默认内边距是每个方向 5。

有了这些知识,我们可以将 5 的填充应用于围绕超链接的 TextBlock。

例如:

<StackPanel Orientation="Horizontal">
    <Label FontWeight="Bold" Content="Home Page:"/>
    <TextBlock Padding="5">
        <Hyperlink NavigateUri="{Binding WebsiteUrl}">URL TEXT</Hyperlink>
    </TextBlock>
</StackPanel>