Condividi tramite


Procedura: generare l'evento ScrollChanged

Esempio

In questo esempio viene illustrato come gestire l'evento ScrollChanged di un oggetto ScrollViewer.

Un elemento FlowDocument con parti Paragraph viene definito in XAML. Quando si verifica l'evento ScrollChanged a causa dell'interazione dell'utente, viene richiamato un gestore e viene immesso testo in un controllo TextBlock per indicare il verificarsi dell'evento.

<ScrollViewer Name="sv1" 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 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
private void sChanged(object sender, ScrollChangedEventArgs e)
{
    if (sv1.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 = "";
    }

Vedere anche

Riferimenti

ScrollViewer

ScrollChanged

ScrollChangedEventHandler

ScrollChangedEventArgs