如何将scrollViewer添加到文本块的堆栈面板中?

时间:2015-12-18 08:23:07

标签: c# xaml windows-phone-8

我尝试为从c#后面创建的文本块添加滚动查看器,将文本块添加到堆栈面板stackPanel.Children.Add(text block)。我想在Windows Phone 8.0中这样做。

制作类似的东西时:

StackPanel stackPanel = new StackPanel();    
ScrollViewer sv = new ScrollViewer();    
sv.Content = stackPanel;

我收到:

  

ExceptionObject = {“值不在预期范围内。”}。

解决该异常的一种解决方案?

2 个答案:

答案 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);
    }

我得到了所需的输出:

Manual textbox

所以我试图重现你的错误。如果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);

将导致:

Exception