2015-10-22 1 views
-1

Comment afficher une chaîne de caractères volumineuse dans Windows Phone en utilisant textblock ou richtextbox? actuellement je suis confronté question de montrer grande quantité de texte dans textbox sa tronquéeTéléphone Windows Bloc de texte ne contenant pas de texte volumineux

+0

Quel style avez-vous appliqué? –

+0

le problème est lorsque plus de 500 caractères ne s'affiche pas correctement – suresh

+1

Cette liaison afficherait uniquement la date? Peut-être pourriez-vous éditer votre question pour inclure le XAML et une capture d'écran de celui-ci tronquée? –

Répondre

0

Pour résoudre ce problème, nous avons créé un convertisseur. Donc, pour commencer, nous devrions placer un ContentPresenter sur la page au lieu de TextBlock pour afficher le contenu que nous aimons

<ContentPresenter Content="{Binding BodyText,Converter={StaticResource LongTextConverter}}" /> 

public string BodyText 

{{ obtenir retour "Lorem ipsum dolor sit amet, ..."; }}

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     UIElement result = null; 

     if (value != null) 
     { 
      string data = value.ToString(); 

      if (data.Length <= MinLength) 
      { 
       result = new TextBlock 
          { 
           Text = data, 
           Style = App.Current.Resources["ArticleBodyStyle"] as Style, 
           HorizontalAlignment = HorizontalAlignment.Stretch 
          }; 
      } 
      else 
      { 
       StackPanel resultPanel = new StackPanel(); 
       int min = 0; 
       int max = MinLength; 
       while (true) 
       { 
        string temp = data.Substring(min, max - min); 
        if (max != data.Length) 
        { 
         int index = temp.LastIndexOf('\n'); 
         index = index == -1 ? temp.LastIndexOf('.') + 1 : -1; 
         max = (index == -1) ? max : index; 
         temp = data.Substring(min, max) + '\n'; 
         resultPanel.Children.Add(new TextBlock 
                { 
                 Margin = new Thickness(12, 0, 12, -30), 
                 Text = temp, 
                 Style = App.Current.Resources["ArticleBodyStyle"] as Style, 
                 HorizontalAlignment = HorizontalAlignment.Stretch 
                }); 
        } 
        else 
        { 
         resultPanel.Children.Add(new TextBlock 
                { 
                 Margin = new Thickness(12, 0, 12, 0), 
                 Text = temp, 
                 Style = App.Current.Resources["ArticleBodyStyle"] as Style, 
                 HorizontalAlignment = HorizontalAlignment.Stretch 
                }); 
         break; 
        } 

        min += max; 
        max = min + MinLength; 
        if (max > data.Length) 
        { 
         max = data.Length; 
        } 
       } 

       result = resultPanel; 
      } 
     } 

     return result; 
    } 
0

Sur Windows Phone il y a une contrainte sur la taille d'un contrôle unique telle qu'elle évite la création de très grandes surfaces devant être tirées et que aurait certainement un impact sur la performance.

Il existe différentes approches pour résoudre cela et il y a un exemple d'un travail autour qui prend du texte et il casse automatiquement sur plusieurs TextBlocks à http://blogs.msdn.com/b/priozersk/archive/2010/09/08/creating-scrollable-textblock-for-wp7.aspx

Si vous avez un exemple plus précis et repro s'il vous plaît mettre à jour votre question ce.