2013-08-01 2 views
0

У меня есть веб-приложение silverlight. Я показываю информацию журнала в окне child windows.child, содержащем элемент управления textbox. Я установил ScrollViewer.VerticalScrollBarVisibility = "Auto", но вертикальная полоса прокрутки не отображается вверх. Пожалуйста, помогите мне в этом.Текстовое поле ScrollBar не подходит после установки ScrollViewer.VerticalScrollBarVisibility = "Auto"

XAML

<controls:ChildWindow x:Class="LogPopUpWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" 
     Width="600" Height="400" 
     Title="" HasCloseButton="False"> 
<Grid x:Name="LayoutRoot" Margin="2"> 
    <Grid.RowDefinitions> 
     <RowDefinition /> 
     <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 
    <TextBox x:Name="LogEvents" IsReadOnly="True" ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
    ScrollViewer.VerticalScrollBarVisibility="Visible"></TextBox> 
    <Button x:Name="CancelButton" Content="Cancel" Click="CancelButton_Click" Width="75" Height="23" HorizontalAlignment="Right" Margin="0,12,0,0" Grid.Row="1" /> 
</Grid> 

C#

public void RefreshLogs(string message = "") 
    { 
     StringBuilder text = new StringBuilder(); 
     if (string.IsNullOrEmpty(message)) 
     { 
      if (Logger.GetLogs() != null) 
      { 
       Logger.GetLogs().ForEach(b => 
       { 
        text.AppendFormat("{2}{0}: {1}{2}", b.UserTargetOperation, b.UserEventDate.ToString(), Environment.NewLine); 
        foreach (KeyValuePair<string, string> pair in b.Parameters) 
        { 
         text.AppendFormat("   {0} : {1}{2}", pair.Key, pair.Value, Environment.NewLine); 
        } 
       }); 
      } 

      LogEvents.Text = text.ToString(); 
     } 
     else 
     { 
      LogEvents.Text = message; 
      LogEvents.TextWrapping = TextWrapping.Wrap; 
     } 
    } 

Кнопка Handler Coder

private void ShowLogLink_Click(object sender, System.Windows.RoutedEventArgs e) 
    { 

     ///Logger.GetLogs(); 
     /// 
     LogPopUpWindow win = new LogPopUpWindow(); 
     win.RefreshLogs(); 
     win.Show(); 
    } 
+0

Я пропустил что-то?. Это весь код, который у меня есть. –

ответ

0

Я бы поставил это только в комментарии, но я не хватает респ , Я попытался воспроизвести ошибку, которую вы описываете, о том, что панель вертикальной прокрутки не отображается, но когда я заполняю текстовое поле большим текстом, чем высота удерживает, отображается полоса прокрутки.

Есть ли другие порции, влияющие на вашу проблему, которые вы не указали?

+0

Помимо этого у меня есть код обработчика кнопок, где я запускаю дочернее окно. Это все код, который у меня есть. Я пробовал в другом примере. Также я не получаю прокрутку в TextBox. Обновлен вопрос –

+0

Это растяжка, но, возможно, попробуй подождать на win.RefreshLog(). У меня действительно нет возможности проверить это, но, возможно, «выигрыш» получает визуализацию до заполнения текста и установки высоты. – QckLrner

0

Проблема разрешена. Я добавил свойства вертикальной прокрутки в код и работает.

public void RefreshLogs(string message = "") 
    { 
     StringBuilder text = new StringBuilder(); 
     if (string.IsNullOrEmpty(message)) 
     { 
      if (Logger.GetLogs() != null) 
      { 
       Logger.GetLogs().ForEach(b => 
       { 
        text.AppendFormat("{2}{0}: {1}{2}", b.UserTargetOperation, b.UserEventDate.ToString(), Environment.NewLine); 
        foreach (KeyValuePair<string, string> pair in b.Parameters) 
        { 
         text.AppendFormat("   {0} : {1}{2}", pair.Key, pair.Value, Environment.NewLine); 
        } 
       }); 
      } 

      LogEvents.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; // added 
      LogEvents.Text = text.ToString(); 
     } 
     else 
     { 
      **LogEvents.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;** // added 
      LogEvents.Text = message; 
      LogEvents.TextWrapping = TextWrapping.Wrap; 
     } 
    } 
} 
Смежные вопросы