У меня есть a TextBlock
в a ScrollViewer
это выравнивается с фрагментом к его окну. Мне нужно TextBlock
вести себя как следующее:
TextBlock
потребности сохранить a MinWidth
и полосы прокрутки должны появитьсяTextWrapping
или TextTrimming
должен работать соответственноКак я могу получить эту функциональность?
Я попробовал несколько путей, включив привязку к ActualWidth
& ActualHeight
, но не может заставить это работать.
Это не может быть настолько трудно, что я пропускаю?
Вот пример кода, чтобы вставить XamlPad (никакой MinWidth еще не установлен):
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<TextBlock TextWrapping="Wrap" Text="Some really long text that should probably wordwrap when you resize the window." />
</ScrollViewer>
</Window>
Это работает:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ScrollViewer HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto"
Name="Scroller">
<TextBlock HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
MinWidth="100"
Width="{Binding ElementName=Scroller, Path=ViewportWidth}"
TextWrapping="Wrap"
Text="Some really long text that should probably wordwrap when you resize the window." />
</ScrollViewer>
</Window>
] Без более подробной информации, лучшее, что я могу сделать, это предоставить стандартный способ сделать это. В основном, разместите ваш элемент (который имеет минимальный размер) в просмотрщике прокрутки; когда просмотрщик прокрутки будет иметь достаточно маленький размер, чтобы элемент не мог полностью поместиться внутри него, он автоматически отобразит полосы прокрутки. Пример:[
] [<ScrollViewer>
<Button MinWidth="100" MinHeight="50"/>
</ScrollViewer>
]