none
Maitriser le nombre de caractere afficher dans un texblock RRS feed

Réponses

  • Haha! Bien vu Rudy (quand on travaille trop !). Je suis impardonnable.

    Ou alors, elle peut utiliser un simple converter

    public class LimitTextBlockSizeConverter : IValueConverter
      {  
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
          string ret = string.Empty;
    
          if (value == null)
            return ret;
    
          ret = value.ToString();
    
          if(parameter == null)
            throw new ArgumentException("You must specific a valid size");
          
          int textBlockSize = 0;
    
          if (int.TryParse(parameter.ToString(), out textBlockSize))
          {
            if (ret.Length > textBlockSize) {
              ret = ret.Substring(0, textBlockSize);
            }
          }
    
          return ret;
        }
    
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
          throw new NotImplementedException();
        }
      }
    


    Et pour ton TextBlock, la routine.

    <TextBlock x:Name="monTextBlock" Text="{Binding Path=TaProprieteText, Converter={LimitTextBlockSizeConverter},,ConverterParameter=100}" />
    


    En prenant le soin de référencer ton converter dans les ressources de ta page.

    Voilà qui est réparé !

     


    David POULIN, Expert .NET (WPF, Silverlight et Windows Phone) chez Soat
    • Proposé comme réponse Pascal Saille samedi 23 juillet 2011 18:11
    • Marqué comme réponse Pascal Saille samedi 23 juillet 2011 18:11
    vendredi 22 juillet 2011 16:17
  • <TextBlock x:Name="monTextBlock" Text="{Binding Path=TaProprieteText, Converter={StaticResource LimitTextBlockSizeConverter},ConverterParameter=100}" />

    ;)
    • Proposé comme réponse David_Poulin vendredi 22 juillet 2011 16:26
    • Marqué comme réponse Pascal Saille samedi 23 juillet 2011 18:11
    vendredi 22 juillet 2011 16:25
    Modérateur

Toutes les réponses

  • Bonjour Sarah,


    Tu as une propriété sur le TextBlock qui s'appelle MaxLength 

    <TextBlock MaxLength="100" />


    David POULIN, Expert .NET (WPF, Silverlight et Windows Phone) chez Soat

    vendredi 22 juillet 2011 10:27
  • Merci pour votre réponse mais je ne trouve pas la propriété maxLenght .

    Crdialement,Sara.
    vendredi 22 juillet 2011 11:02
  • Pourtant, elle existe :-), que ce soit dans le xaml ou dans le code behind.
    David POULIN, Expert .NET (WPF, Silverlight et Windows Phone) chez Soat
    vendredi 22 juillet 2011 11:15
  • Petite erreur de la part de David qui a confondu avec TextBox ;)

     

    Un TextBlock affiche un texte fixe, que tu lui as passé, soit directement dans le xaml, soit en C#. Cela signifie que tu maitrises forcement son contenu, à toi te faire 

     

    var txt=".....";

    if(txt.Length>100)

    txt=txt.SubString(0,100);

     

    ;)

    vendredi 22 juillet 2011 16:02
    Modérateur
  • Haha! Bien vu Rudy (quand on travaille trop !). Je suis impardonnable.

    Ou alors, elle peut utiliser un simple converter

    public class LimitTextBlockSizeConverter : IValueConverter
      {  
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
          string ret = string.Empty;
    
          if (value == null)
            return ret;
    
          ret = value.ToString();
    
          if(parameter == null)
            throw new ArgumentException("You must specific a valid size");
          
          int textBlockSize = 0;
    
          if (int.TryParse(parameter.ToString(), out textBlockSize))
          {
            if (ret.Length > textBlockSize) {
              ret = ret.Substring(0, textBlockSize);
            }
          }
    
          return ret;
        }
    
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
          throw new NotImplementedException();
        }
      }
    


    Et pour ton TextBlock, la routine.

    <TextBlock x:Name="monTextBlock" Text="{Binding Path=TaProprieteText, Converter={LimitTextBlockSizeConverter},,ConverterParameter=100}" />
    


    En prenant le soin de référencer ton converter dans les ressources de ta page.

    Voilà qui est réparé !

     


    David POULIN, Expert .NET (WPF, Silverlight et Windows Phone) chez Soat
    • Proposé comme réponse Pascal Saille samedi 23 juillet 2011 18:11
    • Marqué comme réponse Pascal Saille samedi 23 juillet 2011 18:11
    vendredi 22 juillet 2011 16:17
  • <TextBlock x:Name="monTextBlock" Text="{Binding Path=TaProprieteText, Converter={StaticResource LimitTextBlockSizeConverter},ConverterParameter=100}" />

    ;)
    • Proposé comme réponse David_Poulin vendredi 22 juillet 2011 16:26
    • Marqué comme réponse Pascal Saille samedi 23 juillet 2011 18:11
    vendredi 22 juillet 2011 16:25
    Modérateur