2017-06-17 1 views
-1

Lorsque je charge quatre mégaoctets de texte dans TextBox, seules les 11300 premières lignes sont affichées. Le reste est vide. Mais même s'il est vide je peux toujours faire défiler la page et sélectionner du texte. Lorsque je le colore ailleurs, le texte est présent. C'est juste que le texte ne montre pas 11300 lignes. Y a-t-il un moyen de résoudre ce problème?UWP Limite maximale des lignes TextBox?

Here is how it looks

Voici comment je déclare dans XAML:

<RichEditBox 
      x:Name="ContentBox" 
      x:FieldModifier="public" 
      Grid.Row="0" 
      KeyDown="Tb_KeyDown" 
      GotFocus="Content_gotfocus" 
      Loaded="Content_gotfocus" 
      AcceptsReturn="True" 
      TextWrapping="NoWrap" 
      HorizontalAlignment="Stretch" 
      VerticalAlignment="Stretch" 
      IsSpellCheckEnabled="False" 
      IsTextPredictionEnabled="False" 
      TextReadingOrder="UseFlowDirection" 
      FlowDirection="LeftToRight" 
      TextAlignment="Left" 
      > 
     </RichEditBox> 

OU

<TextBox 
      x:Name="ContentBox" 
      x:FieldModifier="public" 
      Grid.Row="0" 
      AcceptsReturn="True" 
      KeyDown="Tb_KeyDown" 
      GotFocus="Content_gotfocus" 
      HorizontalAlignment="Stretch" 
      VerticalAlignment="Stretch" 
      ScrollViewer.HorizontalScrollMode="Enabled" 
      ScrollViewer.VerticalScrollMode="Enabled" 
      ScrollViewer.BringIntoViewOnFocusChange="True" 
      ScrollViewer.HorizontalScrollBarVisibility="Auto" 
      ScrollViewer.VerticalScrollBarVisibility="Auto" 
      TextWrapping="NoWrap" 
      IsSpellCheckEnabled="False" 
      IsTextPredictionEnabled="False" 
      Loaded="Content_gotfocus" 

      TextReadingOrder="UseFlowDirection" 
      FlowDirection="LeftToRight" 
      TextAlignment="Left" LayoutUpdated="content_box_updated" 
      /> 
+0

Vous pouvez plutôt utiliser ['RichEditBox'] (https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/richtextbox-overview). Peut-être que ce serait mieux pour de si grandes quantités de données. –

+0

Pouvez-vous me dire s'il vous plaît comment le configurer parce que, par défaut, RichEditBox a le même problème. – user3761570

Répondre

1

J'ai testé votre code et reproduit votre question. La cause du problème est à la fois RichEditBox et TextBox utilisera le contrôle ScrollViewer pour faire défiler le contenu. Mais il y a la limitation du contenu max qui peut être utilisé dans le scrollview. Et c'est par conception pour garder la performance du contrôle. Si vous souhaitez afficher le reste du contenu. vous pouvez intercepter le contenu restant en fonction du numéro de ligne maximum et afficher le contenu restant dans l'autre RichEditBox/TextBox.