title: Interrupt text from a textblock with "..." when string is too long
body: <p>I am using a Long list selector with many elements in an windows phone 8 application. Each item has a textblock and the text of each one can very from few letters to many words. I want to keep the text to one line so I set the TextWrapping property to "NoWrap". I want to add "..." and crop the text if is it too long to fit on the screen. 
  I tried so far to use loading event of each TextBlock and reduce the text until it would fit on the screen. However, when the list has many elements, the loading event doesn't activate for all textblocks. Is there a proper way to solve this?</p>
  
  <pre><code>    private void TextBlock_Loaded_1(object sender, RoutedEventArgs e)
      {
          TextBlock txt = sender as TextBlock;
          if (txt == null)
              return;
  
          if (txt.ActualWidth &gt; 300)
          {
              while (txt.Text.Length &gt; 4 &amp;&amp; txt.ActualWidth &gt; 290)
                  txt.Text = txt.Text.Substring(0, txt.Text.Length - 4);
              txt.Text = txt.Text.Substring(0, txt.Text.Length - 3);
  
              txt.Text = txt.Text.Trim(new Char[] { ' ', ',' }) + "...";
  
          }
      }
  </code></pre>