2014-12-20 66 views
1

我從web服務閱讀文本,並希望以顯示文本塊中的所有文本。我收到了大約50%的文字,並且無法弄清楚爲什麼其餘部分不顯示。TextBlock的StackPanel中中中ScrollViewer中沒有顯示的所有內容

這裏是我的XAML代碼:

<!--ContentPanel - place additional content here--> 

    <Grid x:Name="ContentPanel" Grid.Row="1" > 

      <Grid.Background> 
       <ImageBrush ImageSource="/Images/bg-body_mail.png" /> 
      </Grid.Background> 
     <ScrollViewer Name="scrvw"> 
      <StackPanel Name="stkpnl" > 

      </StackPanel> 
     </ScrollViewer> 
    </Grid> 

這是我的C#代碼:

protected override void OnNavigatedTo(NavigationEventArgs e) 
    {     
      var client = new WebClient(); 
      string result = ""; 
      client.DownloadStringCompleted += (q, f) => 
      { 
       result = f.Result.Trim(); 
       string[] strArr = null; 
       char[] splitchar = { '~' }; 
       strArr = result.Split(splitchar); 
       pagetitle.Text = strArr[0]; 


       int lengte = strArr[1].Length; 
       int lines = lengte/40; 
       stkpnl.Margin = new Thickness(10, 0, 10, 0); 



       TextBlock txtVerhaal = new TextBlock(); 

       txtVerhaal.Margin = new Thickness(12, 0, 12, 0); 

       txtVerhaal.TextWrapping = TextWrapping.Wrap; 

       string text = strArr[1]; 
       text=text.Replace("<p>", "\r\n\r\n"); 

       text = text.Replace("<br />", "\r\n"); 
       text = text.Replace("</p>", ""); 
       txtVerhaal.Text = text; 
       stkpnl.Children.Add(txtVerhaal); 


      }; 
      client.DownloadStringAsync(new Uri(url)); 
    } 

結果中的總字符的約7000個字符,但顯示只有約3000個字符。任何textblock,stackpanel或其他定義都沒有限制。

我必須做一些錯誤,但我想不出什麼。

(是的,我需要在一個文本塊的字符的量)。

任何建議是最受歡迎的。

+0

請不要在代碼隱藏中創建任何控件。使用'DataTemplate'在** xaml **中描述您的視圖,並提供一個'DataContext',它將在您的視圖中可視化。你有沒有嘗試在你的代碼中設置一個斷點,並調查'text'變量的設置值是什麼? – dymanoid

+0

文本變量具有web服務的全文。 –

回答

0

你需要叫layoutupdate();功能您在使用WebBrowser控件代碼到底

0

嘗試之後。

變種webBroswer =新web瀏覽器(); webBroswer.NavigateToString(result);

然後將這個瀏覽器控件'webBroswer'添加到你的StackPanel'stkpnl'中。 stkpnl.Children.Add(webBroswer);

相關問題