Freigeben über


FrameworkElement.BringIntoView Methode

Definition

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

Überlädt

BringIntoView(Rect)

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

BringIntoView()

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

BringIntoView(Rect)

Versucht, die bereitgestellte Bereichsgröße dieses Elements in einem der bildlauffähigen Bereiche anzuzeigen, in denen 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

Die angegebene Größe des anzuzeigenden Elements.

Beispiele

Das folgende Beispiel enthält 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 oder einer ScrollViewerabgeleiteten oder ähnlichen Klasse behandelt werden kann. Das erwartete Verhalten besteht darin, dass das Ereignis vom übergeordneten Element behandelt, in den Ereignisdaten als behandelt markiert wird und die Quelle des Ereignisses über die in das ScrollViewer Steuerelement eingebettete Logik angezeigt wird. Weder das RequestBringIntoView Ereignis noch die BringIntoView Methode übertragen Informationen über Erfolg oder Fehler, außer dass das Ereignis in der Regel als erfolgreich behandelt markiert wird. Fehlerursachen können die Elementeinstellungen sein, z Visibility . B. ein anderer Wert als Visible.

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

Wenn Sie diese Methode aufrufen, rufen MakeVisible Sie möglicherweise einen übergeordneten scrollbaren Bereich auf, der das Element enthält. Wenn dieses Element nicht in einem bildlauffähigen Bereich enthalten ist, wird das RequestBringIntoView Ereignis weiterhin ausgelöst, es hat jedoch keine Auswirkung, da keine Ereignislistener vorhanden sind.

Weitere Informationen

Gilt für:

BringIntoView()

Versucht, dieses Element in einem der bildlauffähigen Bereiche anzuzeigen, in denen 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 antwortet, wenn der URI (Uniform Resource Identifier), zu dem navigiert wird, ein Fragment enthält. Das Fragment wird im URI nach dem Hashzeichen (#) benannt, und das implementierte Verhalten bewirkt, dass das Element in die Ansicht innerhalb des Frames scrollt. BringIntoView und RequestBringIntoView fordern dieses 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 oder einer ScrollViewerabgeleiteten oder ähnlichen Klasse behandelt werden kann. Das erwartete Verhalten besteht darin, dass das Ereignis vom übergeordneten Element behandelt, in den Ereignisdaten als behandelt markiert wird und die Quelle des Ereignisses über die in das ScrollViewer Steuerelement eingebettete Logik angezeigt wird. Weder das RequestBringIntoView Ereignis noch die BringIntoView Methode übertragen Informationen über Erfolg oder Fehler, außer dass das Ereignis in der Regel als erfolgreich behandelt markiert wird. Fehlerursachen können die Elementeinstellungen sein, z Visibility . B. ein anderer Wert als Visible.

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

Wenn Sie diese Methode aufrufen, rufen MakeVisible Sie möglicherweise einen übergeordneten scrollbaren Bereich auf, der das Element enthält. Wenn dieses Element nicht in einem bildlauffähigen Bereich enthalten ist, wird das RequestBringIntoView Ereignis weiterhin ausgelöst, es hat jedoch keine Auswirkung, da keine Ereignislistener vorhanden sind.

Weitere Informationen

Gilt für: