共用方式為


如何:處理 ScrollChanged 事件

範例

此範例示範如何處理 ScrollViewerScrollChanged 事件。

具有 Paragraph 部分的 FlowDocument 元素定義於 XAML 中。 當 ScrollChanged 事件發生時,會因為使用者互動而叫用處理程序,並將文字寫入 TextBlock,以指出事件已發生。

<ScrollViewer Name="svrContent" CanContentScroll="False" ScrollChanged="sChanged">

  <FlowDocument FontFamily="Arial" PageWidth="400">
    <Paragraph>
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut
      laoreet dolore magna aliquam erat volutpat.  Ut wisi enim ad minim veniam, quis nostrud exerci tation
      ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure.
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut
      laoreet dolore magna aliquam erat volutpat.  Ut wisi enim ad minim veniam, quis nostrud exerci tation
      ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure.
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut
      laoreet dolore magna aliquam erat volutpat.  Ut wisi enim ad minim veniam, quis nostrud exerci tation
      ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure.
    </Paragraph>
    <Paragraph>
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut
      laoreet dolore magna aliquam erat volutpat.  Ut wisi enim ad minim veniam, quis nostrud exerci tation
      ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure.
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut
      laoreet dolore magna aliquam erat volutpat.  Ut wisi enim ad minim veniam, quis nostrud exerci tation
      ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure.
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut
      laoreet dolore magna aliquam erat volutpat.  Ut wisi enim ad minim veniam, quis nostrud exerci tation
      ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure.
    </Paragraph>

  </FlowDocument>
</ScrollViewer>
private void sChanged(object sender, ScrollChangedEventArgs e)
{
    if (svrContent.CanContentScroll == true)
    {
        tBlock1.Foreground = System.Windows.Media.Brushes.Red;
        tBlock1.Text = "ScrollChangedEvent just Occurred";
        tBlock2.Text = "ExtentHeight is now " + e.ExtentHeight.ToString();
        tBlock3.Text = "ExtentWidth is now " + e.ExtentWidth.ToString();
        tBlock4.Text = "ExtentHeightChange was " + e.ExtentHeightChange.ToString();
        tBlock5.Text = "ExtentWidthChange was " + e.ExtentWidthChange.ToString();
        tBlock6.Text = "HorizontalOffset is now " + e.HorizontalOffset.ToString();
        tBlock7.Text = "VerticalOffset is now " + e.VerticalOffset.ToString();
        tBlock8.Text = "HorizontalChange was " + e.HorizontalChange.ToString();
        tBlock9.Text = "VerticalChange was " + e.VerticalChange.ToString();
        tBlock10.Text = "ViewportHeight is now " + e.ViewportHeight.ToString();
        tBlock11.Text = "ViewportWidth is now " + e.ViewportWidth.ToString();
        tBlock12.Text = "ViewportHeightChange was " + e.ViewportHeightChange.ToString();
        tBlock13.Text = "ViewportWidthChange was " + e.ViewportWidthChange.ToString();
    }
    else
    {
        tBlock1.Text = "";
    }
Private Sub sChanged(ByVal sender As Object, ByVal args As ScrollChangedEventArgs)


    If (sv1.CanContentScroll = True) Then
        tBlock1.Foreground = System.Windows.Media.Brushes.Red
        tBlock1.Text = "ScrollChangedEvent just Occurred"
        tBlock3.Text = "ExtentWidth is now " + args.ExtentWidth.ToString()
        tBlock4.Text = "ExtentHeightChange was " + args.ExtentHeightChange.ToString()
        tBlock5.Text = "ExtentWidthChange was " + args.ExtentWidthChange.ToString()
        tBlock6.Text = "HorizontalOffset is now " + args.HorizontalOffset.ToString()
        tBlock7.Text = "VerticalOffset is now " + args.VerticalOffset.ToString()
        tBlock8.Text = "HorizontalChange was " + args.HorizontalChange.ToString()
        tBlock9.Text = "VerticalChange was " + args.VerticalChange.ToString()
        tBlock10.Text = "ViewportHeight is now " + args.ViewportHeight.ToString()
        tBlock11.Text = "ViewportWidth is now " + args.ViewportWidth.ToString()
        tBlock12.Text = "ViewportHeightChange was " + args.ViewportHeightChange.ToString()
        tBlock13.Text = "ViewportWidthChange was " + args.ViewportWidthChange.ToString()

    Else
        tBlock1.Text = ""

    End If

另請參閱