FrameworkElement.BringIntoView Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 targetRectangle
objeto , 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 targetRectangle
objeto , 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.