Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF超链接中的文本换行_Wpf_Xaml_Hyperlink_Word Wrap - Fatal编程技术网

WPF超链接中的文本换行

WPF超链接中的文本换行,wpf,xaml,hyperlink,word-wrap,Wpf,Xaml,Hyperlink,Word Wrap,在我的WPF应用程序中,我有以下内容: <StackPanel> <TextBlock> <Hyperlink> <TextBlock TextWrapping="Wrap" Name="HyperlinkText" /> </Hyperlink> </TextBlock> </StackPanel> 但是如果我将HyperlinkText.Text设置为一个包装的

在我的WPF应用程序中,我有以下内容:

<StackPanel>
  <TextBlock>
     <Hyperlink>
       <TextBlock TextWrapping="Wrap" Name="HyperlinkText" />
     </Hyperlink>
  </TextBlock>
</StackPanel>

但是如果我将
HyperlinkText.Text
设置为一个包装的长文本,则整个文本在底部只加了一次下划线(见图)。有没有一种方法可以让每一行都单独划线,而不用手动包装


尝试更改超链接的样式以删除下划线。然后将下划线添加到内部文本块样式本身。

实现这一点的更简单方法是使用
Run
而不是TextBlock


希望有帮助。

这在WPF中是一个非常非常烦人的问题。我甚至把它叫做虫子

正如@levanovd在他的回答中提到的,您可以使用
Run
作为内部元素来获得一个要正确包装的超链接:

    <StackPanel>
        <TextBlock TextWrapping="Wrap">
            <Hyperlink><Run>This is a really long hyperlink. Yeah, a really really long hyperlink, whaddaya think?</Run></Hyperlink>
        </TextBlock>
    </StackPanel>

唉。我真的很讨厌WPF的
Hyperlink
元素。它只是不能像你期望的那样工作。

谢谢,它也能工作,而且简单得多。(我不得不将TextWrapping=“Wrap”从内部文本块移动到外部文本块。)为什么这个链接会让我进行安全检查?要不要发布一些代码?我想试试这个,但不知道如何删除下划线,而不破坏其余的风格。我很懒:-)@skypecakes:levanovd的答案更好。更多信息请参见此:谢谢,斯科特。这看起来很有希望,但不幸的是对我不起作用,因为我正在用数据绑定和.NET3.5填充文本。无法绑定3.5中的Run.Text。我今天不那么懒了,所以我会看看我能想出什么,如果足够好的话,我会把结果作为OP问题的答案发布。@skypecakes:有很多附加属性示例,你可以用它们直接在xaml中绑定不可绑定的属性。回答得好!总结得好!
    <StackPanel>
        <TextBlock TextWrapping="Wrap">
            <Hyperlink><Run>This is a really long <Run TextWeight="Bold">hyperlink</Run>. Yeah, a really really long hyperlink, whaddaya think?</Run></Hyperlink>
        </TextBlock>
    </StackPanel>
    <StackPanel>
        <TextBlock>
            <Hyperlink TextDecorations="None"><TextBlock TextWrapping="Wrap" TextDecorations="Underline">This is a really long <Run FontWeight="Bold">hyperlink</Run>. Yeah, a really really long hyperlink, whaddaya think?</TextBlock></Hyperlink>
        </TextBlock>
    </StackPanel>