【发布时间】:2014-05-21 10:05:15
【问题描述】:
我正在尝试让 WPF TextBlock 包装它的文本,并且仍然呈现溢出的文本。
我尝试将 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 来避免在使用标准 Wrap 时会得到的单个字符的换行。因此,当使用 WrapWithOverflow 时,我假设溢出的文本已被剪切,并且我可以通过将 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="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”之后的文本,即使我告诉它不要剪辑任何溢出的内容。我希望渲染溢出的文本,而不是剪辑。
【问题讨论】:
-
请准确地解释你想要什么......你的描述令人困惑。
-
一点也不奇怪...@JamshidAsadzadeh 已经向您解释过,由于您的
Grid.Margin,您的文字被截断了。 -
我认为这与边距无关。即使我明确告诉它不要剪辑,溢出的文本也会被剪辑。
标签: wpf