我尝试为从c#后面创建的文本块添加滚动查看器,将文本块添加到堆栈面板stackPanel.Children.Add(text block)
。我想在Windows Phone 8.0中这样做。
制作类似的东西时:
StackPanel stackPanel = new StackPanel();
ScrollViewer sv = new ScrollViewer();
sv.Content = stackPanel;
我收到:
ExceptionObject = {“值不在预期范围内。”}。
解决该异常的一种解决方案?
答案 0 :(得分:2)
ScrollViewer
根据子控件的维度计算它的滚动条。
如果您的TextBlock
设置了Height
属性,请将其删除,ScrollBars应按预期工作。
你也应该设置:
sv.Content = yourTextBlock;
答案 1 :(得分:1)
使用以下代码(其中Content是Grid):
protected override void OnNavigatedTo(NavigationEventArgs e)
{
var textBlock = new TextBlock() { Text = "hello" };
var stackPanel = new StackPanel();
stackPanel.Children.Add(textBlock);
var sv = new ScrollViewer { Content = stackPanel };
this.Content.Children.Add(sv);
}
我得到了所需的输出:
所以我试图重现你的错误。如果TextBlock为null ,我会得到相同的异常。也许您创建TextBlock的代码有一些问题?这是一个例子:
TextBlock text = null;
var stackPanel = new StackPanel();
stackPanel.Children.Add(text);
var sv = new ScrollViewer { Content = stackPanel };
this.Content.Children.Add(sv);
将导致: