【问题标题】:Scroll text in a textblock from code behind从后面的代码滚动文本块中的文本
【发布时间】:2010-02-25 16:19:04
【问题描述】:

我需要滚动文本块文本。例如,文本块包含 700 个单词。这些单词从后面的代码填充到文本块中,因为它可能是不同的 700 个单词,具体取决于某些“东西”。此表单上还有一个文本框。用户将文本块中的单词输入到文本框中。当他们键入时,我会跟踪他们所在的文本块中的哪个单词。但是,并非文本块中的所有单词都适合文本块查看区域,因此我需要从后面的代码滚动文本块。我该怎么做呢。

我正在使用 Silverlight 3。

谢谢 香农

对不起..我没有意识到我没有在它自己的线程上问这个问题..我会再发一次..

【问题讨论】:

    标签: silverlight scroll textblock


    【解决方案1】:

    首先,您需要将 TextBlock 包装在 ScrollViewer 控件中。此时,您可以像这样在后面的代码中设置 ScrollViewer 的垂直和水平偏移量。请注意,这假定一个名为 ScrollViewer1 的 ScrollViewer 控件。

        Private Sub ScrollViewer1_MouseWheel(ByVal sender As Object, By Val e as System.Windows.Input.MouseWheelEventArgs)
            Me.ScrollViewer1.VerticalOffset = Me.ScrollViewer1.VerticalOffset + e.Delta
        End Sub
    

    【讨论】:

    • 感谢您的回复.. 我正在使用 vb.net 作为后端.. 我尝试转换您提供的内容.. 但出现错误。 DimfocusedElement As FrameworkElementfocusedElement = TryCast(FocusManager.GetFocusedElement(), FrameworkElement) DimfocusedVisualTransform As GeneralTransformfocusedVisualTransform =focusedElement.TransformToVisual(Me.ScrollViewer1) 错误在最后一行。对象引用未设置为实例。我尝试创建一个新的 Instantce.. 没有运气.. 希望你能继续提供一些帮助
    • 我确实将滚动查看器命名为 ScrollViewer1
    • 我的代码实际上旨在移动滚动条,因为您在其中的元素之间切换。你得到错误是因为你没有一个焦点元素。请参阅我的编辑以处理 ScrollViewer1 的 MouseWheel 事件,这应该可以满足您的需求。我也将它转换为 VB。
    • 刚刚意识到您是在建议focusedElement.. scrollviewer 和textblock.. 它们会成为焦点元素吗...如果文本块在后面的代码中完全填充和处理...用户从不触及该文本块中的任何内容。
    • 是的,见上面我的 cmets。此外,我在编辑中给出的代码可能需要修改以检查负偏移量或大于允许的偏移量......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多