Wpf 使用WrapWithOverflow时,如何使TextBlock呈现溢出文本?(无剪裁)

Wpf 使用WrapWithOverflow时,如何使TextBlock呈现溢出文本?(无剪裁),wpf,Wpf,我正在尝试使WPF文本块包装它的文本,并且仍然呈现溢出的文本 我尝试将设置ClipToBounds设置为false,但它仍然会剪辑溢出的文本。有什么办法可以解决这个问题吗 <Window x:Class="overflow_test.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.co

我正在尝试使WPF文本块包装它的文本,并且仍然呈现溢出的文本

我尝试将设置ClipToBounds设置为false,但它仍然会剪辑溢出的文本。有什么办法可以解决这个问题吗

<Window x:Class="overflow_test.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
  <Grid>
    <Grid Margin="100" ClipToBounds="False">
      <TextBlock Text="wefeiqwufhqoeirugfh qeorghuiqeo riguh qeroguihqerogiuqhergo qerhugqeuirhgeiug oqeirugh qoeruig" TextWrapping="WrapWithOverflow" ClipToBounds="False" />
    </Grid>
  </Grid>
</Window>

更新

在我的真实场景中(这里提供的只是为了说明问题),itemscontrol中有许多文本块具有相同的固定宽度。我无法调整每个项目的宽度以完全适合文本而不产生溢出,但我需要使用WrapWithOverflow来避免在单个字符处进行换行,如果使用标准换行,则会出现这种情况。因此,当使用WrapWithOverflow时,我假设溢出的文本被剪裁,并且我可以通过将ClipToBounds设置为false来关闭它。但仍有大量的文字被删去。我觉得这很奇怪,maybee是虫子吗

另一张图片显示了我的意思:

使用此代码:

<Window x:Class="overflow_test.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="308">
  <Grid>
    <TextBlock Width="110" HorizontalAlignment="Center" ClipToBounds="False" VerticalAlignment="Center" Background="White" Text="wefeiqwufhqoeirugfh qeorghuiqeo riguh qeroguihqerogiuqhergo qerhugqeuirhgeiug oqeirugh qoeruig" TextWrapping="WrapWithOverflow" Margin="100,120,90,120" />
  </Grid>
</Window>


正如您所看到的,文本被剪辑在第1行的“h”和第3行的“e”之后,尽管我告诉它不要剪辑任何溢出的内容。我希望呈现溢出的文本,而不是剪切。

您的标记很好,您的问题是您缩小窗口的空间超过了显示文本的空间,您可以使用该
Margin=“100”
查看我的观点。

当我说请准确解释您想要什么时,我想你可以更详细地描述一下你想要什么。如果使用
边距
将代码从
网格
中删除,那么您的代码看起来已经像您想要的输出了。。。试试这个:

<TextBlock Text="wefeiqwufhqoeirugfh qeorghuiqeo riguh qeroguihqerogiuqhergo 
    qerhugqeuirhgeiug oqeirugh qoeruig" TextWrapping="WrapWithOverflow" 
    HorizontalAlignment="Center" VerticalAlignment="Center" Width="160" />

在WPF中包装文本的诀窍是设置
Textblock
宽度,以便它知道何时开始包装文本:


因此,似乎不可能允许呈现溢出的文本(而不是剪切)-即使将cliptobund设置为false也不行


我的解决方案是避免使用普通的文本换行,而是将文本中的所有“”替换为“\r\n”,并接受在每个单词后都有一行新行。在我的情况下,这不是一个问题,所以它对我很有效。

请准确解释您想要什么。。。你的描述令人困惑。一点也不奇怪@JamshidAsadzadeh已经向您解释过,您的文本被截断是因为您的
网格.Margin
。我认为这与Margin无关。这是一个事实,溢出的文本被剪辑,即使我明确告诉它不要剪辑。