Дочерний элемент не может быть больше, чем его родительский элемент, если его содержимое не больше.Если вы хотите обрезать текст, вы можете использовать TextBlock.TextTrimming = WordEllipsis/CharacterEllipsis
.Это приведет к желаемому поведению, если моя интерпретация вопроса верна.
Однако, это не работает должным образом с StackPanel
.Как следует из другого ответа, вы можете использовать DockPanel
или Grid
для упорядочения содержимого.
В качестве альтернативы вы можете обернуть StackPanel
в ScrollViewer
и использовать полосу прокрутки для обработки переполнения.
Обновление Это должно исправить
<DockPanel>
<Border
DockPanel.Dock="Left"
BorderBrush="Black"
BorderThickness="1"
Width="{ Binding BorderScreenShot }"
Margin="0,-8,0,0">
<Image ToolTip="Some Text" Cursor="Hand" Source="{ Binding Image }" Stretch="Fill" Visibility="{ Binding ImageVisibility }" MouseLeftButtonUp="Image_MouseLeftButtonUp" />
</Border>
<StackPanel
DockPanel.Dock="Bottom"
Orientation="Horizontal">
<TextBlock Text="{ Binding Category }" />
<TextBlock Text="{ Binding Version }" />
</StackPanel>
<TextBlock
DockPanel.Dock="Top"
Text="{ Binding Name }"
TextWrapping="Wrap" />
<TextBlock
Text="{ Binding LongText }"
TextTrimming="WordEllipsis"
TextWrapping="Wrap" />
</DockPanel>