Compartir a través de


FrameworkElement.BringIntoView Método

Definición

Intenta mostrar este elemento, en cualquier región desplazable que lo contenga.

Sobrecargas

BringIntoView(Rect)

Intenta mostrar el tamaño de la región proporcionado de este elemento, dentro de cualquier región desplazable que lo contenga.

BringIntoView()

Intenta mostrar este elemento, en cualquier región desplazable que lo contenga.

BringIntoView(Rect)

Intenta mostrar el tamaño de la región proporcionado de este elemento, dentro de cualquier región desplazable que lo contenga.

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)

Parámetros

targetRectangle
Rect

Tamaño especificado del elemento que también se debe mostrar.

Ejemplos

En el ejemplo siguiente se muestra un gráfico grande en una región de desplazamiento restringida. Un botón de la página tiene un controlador que desplaza la vista a una región determinada del gráfico grande.

<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

Comentarios

Al llamar a este método, se genera un RequestBringIntoView evento que se origina en el elemento actual. Este evento se genera para que un elemento , o una clase derivada o similar pueda controlarlo ScrollViewer. El comportamiento esperado es que el elemento primario controle el evento, marcado como controlado en los datos del evento y el origen del evento se vea a través de la lógica incrustada en el ScrollViewer control. Ni el RequestBringIntoView evento ni el BringIntoView método transmiten información sobre éxito o error, aparte de que el evento se marca normalmente como correcto. Los motivos de error pueden incluir la configuración del elemento, como Visibility ser un valor distinto de Visible.

Si usa la firma que no especifica un targetRectangleobjeto , todo el tamaño del elemento (su ) RenderSizese hará visible.

Al llamar a este método, puede llamar a MakeVisible en cualquier área desplazable primaria que contenga el elemento . Si este elemento no está contenido en un área desplazable, el RequestBringIntoView evento todavía se genera, pero no habrá ningún efecto porque no hay agentes de escucha de eventos.

Consulte también

Se aplica a

BringIntoView()

Intenta mostrar este elemento, en cualquier región desplazable que lo contenga.

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

Ejemplos

En el ejemplo siguiente se implementa un controlador para un evento de navegación de aplicación que responde cada vez que el identificador uniforme de recursos (URI) que se navega a incluye un fragmento. El fragmento se denomina en el URI que sigue al signo hash (#) y el comportamiento implementado hace que el elemento se desplácese hacia la vista dentro del marco. BringIntoView y RequestBringIntoView solicitan ese comportamiento de desplazamiento en el ejemplo.

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

Comentarios

Al llamar a este método, se genera un RequestBringIntoView evento que se origina en el elemento actual. Este evento se genera para que un elemento , o una clase derivada o similar pueda controlarlo ScrollViewer. El comportamiento esperado es que el elemento primario controle el evento, marcado como controlado en los datos del evento y el origen del evento se vea a través de la lógica incrustada en el ScrollViewer control. Ni el RequestBringIntoView evento ni el BringIntoView método transmiten información sobre éxito o error, aparte de que el evento se marca normalmente como correcto. Los motivos de error pueden incluir la configuración del elemento, como Visibility ser un valor distinto de Visible.

Si usa la firma que no especifica un targetRectangleobjeto , todo el tamaño del elemento (su ) RenderSizese hará visible.

Al llamar a este método, puede llamar a MakeVisible en cualquier área desplazable primaria que contenga el elemento . Si este elemento no está contenido en un área desplazable, el RequestBringIntoView evento todavía se genera, pero no habrá ningún efecto porque no hay agentes de escucha de eventos.

Consulte también

Se aplica a