我有silverlight网络应用程序。我在子窗口中显示日志信息。儿童窗口包含一个文本框控件。我设置了ScrollViewer.VerticalScrollBarVisibility =“自动”但垂直滚动条没有显示出来。请帮助我。
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;
}
}
按钮处理程序编码器
private void ShowLogLink_Click(object sender, System.Windows.RoutedEventArgs e)
{
///Logger.GetLogs();
///
LogPopUpWindow win = new LogPopUpWindow();
win.RefreshLogs();
win.Show();
}
答案 0 :(得分:0)
我会把它放在评论中,但我没有足够的代表。我试图重现您所描述的错误,即垂直滚动条没有显示,但是当我用文本框填充的文本高于其高度时,滚动条会显示。
是否有其他影响您问题的部分未列出?
答案 1 :(得分: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;
}
}
}