2016-04-08 42 views
0

我嘗試在ListBox中創建多行。如何在列表框(TextBox項目)上製作多行文本?

所以,我讀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,因爲我需要編輯行。 所以,我想如果文本行將非常大,它包裝成多。

和滾動不偶合(但應該是)。

你能告訴我,怎麼做?

P.S.似乎Scroll沒有處理,因爲它來自另一個Grid。

+0

您的XAML似乎正常工作......您確定沒有別的東西(即樣式)不允許您的'TextBox'包裝? –

+0

@IlVic,在上部網格,ScrollViewer.Horizo​​ntalScrollBarVisibility =「Auto」,ScrollViewer.CanContentScroll =「True」 –

+1

水平滾動條出現的時間足夠長以至於它應該包裝? (忽略我,注意到你有ScrollViewer.Horizo​​ntalScrollBarVisibility =「Disabled」) – Joe

回答

1

按照要求,作爲一個答案我的評論:

是否水平滾動條時,得到的足夠長的時間,它應該被包裝出現?包裝不會發生,因爲內容可以在ScrollViewer中儘可能多地縮放。包裝是次要的控制填充所有水平空間,所以允許它滾動允許它消耗無限的空間。

設置:

ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
包含您的文本框(列表框)的控制

應防止這種行爲。

0

@Joe是正確的:上面的網格有ScrollView.HorizontalBarVisible:Auto,所以我改變它爲Disable,它的工作原理!

+0

太好了,我必須完全誤讀你的代碼,因爲我以爲我已經檢查過並且看到你已經把ScrollViewer.Horizo​​ntalScrollBarVisibility =「Disabled 」。 很高興我發表了評論! – Joe

+0

@Joe,你可以自己寫答案,我把它作爲正確的答案,因爲你的建議可以幫助我。 –

+0

當然,謝謝你的提議! – Joe

相關問題