Не уверен, что это ошибка или что-то, но ни один из моих текстовых полей не разрешает горизонтальную прокрутку. Я пробовал различные способы решения, но пока ничего не выиграл. Чтобы быть конкретным, я хочу иметь возможность выбирать текст и перетаскивать влево/вправо, чтобы показать переполнение.Однострочный переполнения TextBox unscrollable
Сначала я начал с удаления любых стилей, предназначенных для TextBox.
Затем я добавил некоторые свойства, как HorizontalScrollBarVisibility=Visible, VerticalScrollBarVisibility=Disabled, AcceptsReturn=False, TextWrapping=NoWrap
...
До сих пор, добавляя какие-либо из перечисленных выше свойств не делает ничего.
Есть ли свойство, которого я отсутствует, или обработчик событий, который мне нужно добавить для этого?
Редактировать
Забыл упомянуть, фактические полосы прокрутки показывает (по горизонтали), но это не позволяет перетащить выбранный текст влево/вправо. Я просто удалил стиль, который нацелен на ScrollBar, но это, похоже, не мешает.
Edit 2
Простой пример:
<TextBox
Text="Lots of text to cause overflow"
HorizontalScrollBarVisibility="Visible"
VerticalScrollBarVisibility="Disabled"
AcceptsReturn="False"
TextWrapping="NoWrap"/>
Редактировать 3
Выпуск вытекающих из стиля я использую целевой ScrollViewer, хотя я Не уверен, причина:
<Style TargetType="{x:Type ScrollViewer}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollViewer}">
<Grid>
<ScrollContentPresenter Grid.Column="0" />
<ScrollBar x:Name="PART_VerticalScrollBar" HorizontalAlignment="Right" Value="{TemplateBinding VerticalOffset}" Maximum="{TemplateBinding ScrollableHeight}" ViewportSize="{TemplateBinding ViewportHeight}" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" />
<ScrollBar x:Name="PART_HorizontalScrollBar" Orientation="Horizontal" VerticalAlignment="Bottom" Value="{TemplateBinding HorizontalOffset}" Maximum="{TemplateBinding ScrollableWidth}" ViewportSize="{TemplateBinding ViewportWidth}" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" />
<!--<Rectangle Grid.Row="1" Grid.Column="1" Fill="Red"/>-->
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Edit 4
По предложению Сакуры, у меня есть:
<ControlTemplate TargetType="{x:Type ScrollViewer}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ScrollContentPresenter Grid.Row="0" Grid.Column="0"/>
<ScrollBar Grid.Row="0" Grid.Column="1" x:Name="PART_VerticalScrollBar" HorizontalAlignment="Right" Value="{TemplateBinding VerticalOffset}" Maximum="{TemplateBinding ScrollableHeight}" ViewportSize="{TemplateBinding ViewportHeight}" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" />
<ScrollBar Grid.Row="1" Grid.Column="0" x:Name="PART_HorizontalScrollBar" Orientation="Horizontal" VerticalAlignment="Bottom" Value="{TemplateBinding HorizontalOffset}" Maximum="{TemplateBinding ScrollableWidth}" ViewportSize="{TemplateBinding ViewportWidth}" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" />
</Grid>
</ControlTemplate>
Но это все еще не работает ...
Что вы XAML? – TreeTree
Добавлен пример в исходное сообщение. –
Ваш код выше не является кодом XAML. Нет атрибута 'TextWrap'' TextBox'. – Sakura