C# WPF - ScrollViewer + проблемы TextBlock

У меня есть 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>
19
задан Dave Clemmer 9 September 2011 в 02:43
поделиться

2 ответа

Это работает:

<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>
26
ответ дан 30 November 2019 в 04:16
поделиться
[

] Без более подробной информации, лучшее, что я могу сделать, это предоставить стандартный способ сделать это. В основном, разместите ваш элемент (который имеет минимальный размер) в просмотрщике прокрутки; когда просмотрщик прокрутки будет иметь достаточно маленький размер, чтобы элемент не мог полностью поместиться внутри него, он автоматически отобразит полосы прокрутки. Пример:[

] [
<ScrollViewer>
    <Button MinWidth="100" MinHeight="50"/>
</ScrollViewer>
]
2
ответ дан 30 November 2019 в 04:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: