FrameworkElement.BringIntoView Methode

Definition

Versucht, dieses Element in alle bildlauffähigen Bereiche anzuzeigen, in der es enthalten ist.

Überlädt

Name Beschreibung
BringIntoView(Rect)

Versucht, die bereitgestellte Bereichsgröße dieses Elements in alle bildlauffähigen Bereiche anzuzeigen, in der es enthalten ist.

BringIntoView()

Versucht, dieses Element in alle bildlauffähigen Bereiche anzuzeigen, in der es enthalten ist.

BringIntoView(Rect)

Versucht, die bereitgestellte Bereichsgröße dieses Elements in alle bildlauffähigen Bereiche anzuzeigen, in der es enthalten ist.

public:
 void BringIntoView(System::Windows::Rect targetRectangle);
public void BringIntoView(System.Windows.Rect targetRectangle);
member this.BringIntoView : System.Windows.Rect -> unit
Public Sub BringIntoView (targetRectangle As Rect)

Parameter

targetRectangle
Rect

Angegebene Größe des Elements, das ebenfalls angezeigt werden soll.

Beispiele

Das folgende Beispiel verfügt über eine große Grafik in einem eingeschränkten Bildlaufbereich. Eine Schaltfläche auf der Seite verfügt über einen Handler, der die Ansicht zu einem bestimmten Bereich der großen Grafik scrollt.

<ScrollViewer Width="300" Height="300" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible">
  <Image Name="mapframe" ScrollViewer.CanContentScroll="True"  >
    <Image.Source>
      <BitmapImage UriSource="treasuremap.bmp"/>
    </Image.Source>
  </Image>
</ScrollViewer>
<StackPanel>
  <Button Click="GoToLake">Go to Lake</Button>

</StackPanel>
void GoToLake(object sender, RoutedEventArgs e)
{
    mapframe.BringIntoView(new Rect(800, 400, 200, 200));
}
Private Sub GoToLake(ByVal sender As Object, ByVal e As RoutedEventArgs)
    mapframe.BringIntoView(New Rect(800, 400, 200, 200))
End Sub

Hinweise

Durch Aufrufen dieser Methode lösen Sie ein RequestBringIntoView Ereignis aus, das aus dem aktuellen Element stammt. Dieses Ereignis wird ausgelöst, sodass es von einer ScrollViewerabgeleiteten oder ähnlichen Klasse behandelt werden kann. Das erwartete Verhalten besteht darin, dass das Ereignis vom übergeordneten Element behandelt wird, das in den Ereignisdaten behandelt wird und die Quelle des Ereignisses durch die im ScrollViewer Steuerelement eingebettete Logik angezeigt wird. Weder das RequestBringIntoView Ereignis noch die BringIntoView Methode übermitteln Informationen über Erfolg oder Fehler, außer dass das Ereignis in der Regel als erfolgreich behandelt wird. Fehlerursachen können die Elementeinstellungen enthalten, z Visibility . B. einen anderen Wert als Visible.

Wenn Sie die Signatur verwenden, die keinen Wert angibt targetRectangle, wird die gesamte Elementgröße (deren RenderSize) sichtbar gemacht.

Durch Aufrufen dieser Methode rufen MakeVisible Sie potenziell alle übergeordneten bildlauffähigen Bereiche auf, die das Element enthalten. Wenn dieses Element nicht in einem bildlauffähigen Bereich enthalten ist, wird das RequestBringIntoView Ereignis weiterhin ausgelöst, aber es gibt keine Auswirkung, da keine Ereignislistener vorhanden sind.

Weitere Informationen

Gilt für:

BringIntoView()

Versucht, dieses Element in alle bildlauffähigen Bereiche anzuzeigen, in der es enthalten ist.

public:
 void BringIntoView();
public void BringIntoView();
member this.BringIntoView : unit -> unit
Public Sub BringIntoView ()

Beispiele

Im folgenden Beispiel wird ein Handler für ein Anwendungsnavigationsereignis implementiert, das reagiert, wenn der URI (Uniform Resource Identifier) zu einem Fragment navigiert wird. Das Fragment wird im URI nach dem Hashzeichen (#) benannt, und das implementierte Verhalten bewirkt, dass das Element innerhalb des Frames in die Ansicht gescrollt wird. BringIntoView und RequestBringIntoView fordern Sie das Bildlaufverhalten im Beispiel an.

void browserFrame_FragmentNavigation(object sender, FragmentNavigationEventArgs e)
{
    object content = ((ContentControl)e.Navigator).Content;
    FrameworkElement fragmentElement = LogicalTreeHelper.FindLogicalNode((DependencyObject)content, e.Fragment) as FrameworkElement;
    if (fragmentElement == null)
    {
        // Redirect to error page
        // Note - You can't navigate from within a FragmentNavigation event handler,
        //        hence creation of an async dispatcher work item
        this.Dispatcher.BeginInvoke(
            DispatcherPriority.Send,
            (DispatcherOperationCallback) delegate(object unused) 
            {
                this.browserFrame.Navigate(new Uri("FragmentNotFoundPage.xaml", UriKind.Relative));
                return null;
            },
            null);
        e.Handled = true;
    }
}
Private Sub browserFrame_FragmentNavigation(ByVal sender As Object, ByVal e As FragmentNavigationEventArgs)
    Dim element As FrameworkElement = TryCast(LogicalTreeHelper.FindLogicalNode(DirectCast(DirectCast(e.Navigator, ContentControl).Content, DependencyObject), e.Fragment), FrameworkElement)
    If (element Is Nothing) Then
        ' Redirect to error page
        ' Note - You can't navigate from within a FragmentNavigation event handler,
        '        hence creation of an async dispatcher work item
        Dim callback As New DispatcherOperationCallback(AddressOf Me.FragmentNotFoundNavigationRedirect)
        Me.Dispatcher.BeginInvoke(DispatcherPriority.Normal, callback, Nothing)
    End If
    e.Handled = True
End Sub

Function FragmentNotFoundNavigationRedirect(ByVal unused As Object) As Object
    Me.browserFrame.Navigate(New Uri("FragmentNotFoundPage.xaml", UriKind.Relative))
    Return Nothing
End Function

Hinweise

Durch Aufrufen dieser Methode lösen Sie ein RequestBringIntoView Ereignis aus, das aus dem aktuellen Element stammt. Dieses Ereignis wird ausgelöst, sodass es von einer ScrollViewerabgeleiteten oder ähnlichen Klasse behandelt werden kann. Das erwartete Verhalten besteht darin, dass das Ereignis vom übergeordneten Element behandelt wird, das in den Ereignisdaten behandelt wird und die Quelle des Ereignisses durch die im ScrollViewer Steuerelement eingebettete Logik angezeigt wird. Weder das RequestBringIntoView Ereignis noch die BringIntoView Methode übermitteln Informationen über Erfolg oder Fehler, außer dass das Ereignis in der Regel als erfolgreich behandelt wird. Fehlerursachen können die Elementeinstellungen enthalten, z Visibility . B. einen anderen Wert als Visible.

Wenn Sie die Signatur verwenden, die keinen Wert angibt targetRectangle, wird die gesamte Elementgröße (deren RenderSize) sichtbar gemacht.

Durch Aufrufen dieser Methode rufen MakeVisible Sie potenziell alle übergeordneten bildlauffähigen Bereiche auf, die das Element enthalten. Wenn dieses Element nicht in einem bildlauffähigen Bereich enthalten ist, wird das RequestBringIntoView Ereignis weiterhin ausgelöst, aber es gibt keine Auswirkung, da keine Ereignislistener vorhanden sind.

Weitere Informationen

Gilt für: