【发布时间】:2016-04-08 07:11:33
【问题描述】:
我尝试在 ListBox 上创建多行行。
所以,我阅读了this question 并制作了这个 xaml:
<ListBox Grid.Row="1" x:Name="lbKeyPhrases" BorderBrush="Gray"
ItemsSource="{Binding Templates}"
IsSynchronizedWithCurrentItem="True"
Focusable="True"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollBarVisibility="Auto"
HorizontalContentAlignment="Stretch" Grid.ColumnSpan="2"
>
<ListBox.ContextMenu>
<ContextMenu>
<MenuItem Header="Add Word" Click="MenuItem_Click">
<Image Source="/SomeProj.UI.Resources;component/PNGImages/ItemAdd.png"/>
</MenuItem>
</ContextMenu>
</ListBox.ContextMenu>
<ListBox.ItemTemplate>
<DataTemplate>
<DockPanel>
<Border x:Name="brRow" BorderThickness="1" BorderBrush="LightGray"
Background="WhiteSmoke"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<TextBox x:Name="tblbRow"
Text="{Binding Text,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Tag="{Binding}"
GotFocus="tblbRow_GotFocus"
AcceptsReturn="True"
TextWrapping="Wrap" Margin="2"
Focusable="True"
Background="Transparent"
HorizontalAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
>
<TextBox.ContextMenu>
<ContextMenu>
<MenuItem Header="Remove Word"
Click="MenuItem_Click_RemoveTemplate">
<Image Source="/SomeProj.UI.Resources;component/PNGImages/ItemDel.png"/>
</MenuItem>
</ContextMenu>
</TextBox.ContextMenu>
</TextBox>
</Border>
</DockPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
但似乎,这对我不起作用。 我使用 TextBox 而不是 TextBlock,因为我需要编辑行。 所以,我想如果文本行会非常大 - 它会换行。
而且 Scroll 没有被处理(但应该被处理)。
你能告诉我,怎么做吗?
附:似乎 Scroll 没有被释放,因为它来自另一个 Grid。
【问题讨论】:
-
您的 XAML 似乎工作正常...您确定没有其他东西(即样式)不允许您的
TextBox换行吗? -
@IlVic,在上层网格,ScrollViewer.HorizontalScrollBarVisibility="Auto",ScrollViewer.CanContentScroll="True"
-
当水平滚动条变得足够长以至于应该换行时,是否会出现? (忽略我,注意到你有 ScrollViewer.HorizontalScrollBarVisibility="Disabled")
-
我遇到了一个问题,即我针对 ScrollViewer 的样式缺少此
<ScrollContentPresenter CanContentScroll="True"/>。我会检查以确保不是这种情况。CanContentScroll="False"重现了这个确切的问题。 -
@Joe,当我设置大文本时,我有一个水平滚动......并且没有换行