如何在ListBox(TextBox项)上创建多行文本?

时间:2016-04-08 07:11:34

标签: c# wpf xaml listbox

我尝试在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没有消失(但应该是)。

你能告诉我,怎么做?

P.S。似乎Scroll没有被丢弃,因为它来自另一个Grid。

1 个答案:

答案 0 :(得分:1)

根据要求,我的评论作为答案:

当水平滚动条足够长以至于应该包裹时,它是否会出现?由于内容可以在ScrollViewer中按需要扩展,因此不会发生包装。包装是次要的控制填充所有水平空间,因此允许它滚动允许它消耗无限空间。

环境:

getNumericCellValue()
包含文本框(ListBox)的控件中的

应该可以防止此行为。

相关问题