FrameworkElement.BringIntoView Metodo

Definizione

Tenta di visualizzare questo elemento all'interno di qualsiasi area di scorrimento che lo contiene.

Overload

BringIntoView(Rect)

Tenta di visualizzare le dimensioni dell'area fornite per questo elemento all'interno di qualsiasi area di scorrimento che lo contiene.

BringIntoView()

Tenta di visualizzare questo elemento all'interno di qualsiasi area di scorrimento che lo contiene.

BringIntoView(Rect)

Tenta di visualizzare le dimensioni dell'area fornite per questo elemento all'interno di qualsiasi area di scorrimento che lo contiene.

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)

Parametri

targetRectangle
Rect

Dimensione specificata dell'elemento che deve essere visualizzata.

Esempio

Nell'esempio seguente è presente un elemento grafico di grandi dimensioni in un'area di scorrimento vincolata. Un pulsante nella pagina ha un gestore che scorre la visualizzazione in un'area specifica dell'elemento grafico di grandi dimensioni.

<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

Commenti

Chiamando questo metodo, viene generato un RequestBringIntoView evento che ha origine dall'elemento corrente. Questo evento viene generato in modo che possa essere gestito da una ScrollViewerclasse derivata o simile. Il comportamento previsto è che l'evento viene gestito dall'elemento padre, contrassegnato come gestito nei dati dell'evento e l'origine dell'evento viene visualizzata tramite la logica incorporata nel ScrollViewer controllo. Né l'evento RequestBringIntoView né il BringIntoView metodo trasmettono informazioni sull'esito positivo o negativo, diversamente dal fatto che l'evento è in genere contrassegnato come gestito in caso di esito positivo. I motivi di errore possono includere le impostazioni dell'elemento, ad esempio Visibility un valore diverso da Visible.

Se si usa la firma che non specifica un targetRectangleoggetto , verrà resa visibile l'intera dimensione dell'elemento (relativa RenderSize).

Chiamando questo metodo, è possibile chiamare MakeVisible su qualsiasi area scorrevole padre contenente l'elemento . Se questo elemento non è contenuto in un'area scorrevole, l'evento RequestBringIntoView viene ancora generato, ma non vi sarà alcun effetto perché non sono presenti listener eventi.

Vedi anche

Si applica a

BringIntoView()

Tenta di visualizzare questo elemento all'interno di qualsiasi area di scorrimento che lo contiene.

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

Esempio

Nell'esempio seguente viene implementato un gestore per un evento di spostamento dell'applicazione che risponde ogni volta che viene spostato l'URI (Uniform Resource Identifier) per includere un frammento. Il frammento è denominato nell'URI che segue il segno hash (#) e il comportamento implementato causa lo scorrimento dell'elemento nella visualizzazione all'interno del frame. BringIntoView e RequestBringIntoView richiedere il comportamento di scorrimento nell'esempio.

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

Commenti

Chiamando questo metodo, viene generato un RequestBringIntoView evento che ha origine dall'elemento corrente. Questo evento viene generato in modo che possa essere gestito da una ScrollViewerclasse derivata o simile. Il comportamento previsto è che l'evento viene gestito dall'elemento padre, contrassegnato come gestito nei dati dell'evento e l'origine dell'evento viene visualizzata tramite la logica incorporata nel ScrollViewer controllo. Né l'evento RequestBringIntoView né il BringIntoView metodo trasmettono informazioni sull'esito positivo o negativo, diversamente dal fatto che l'evento è in genere contrassegnato come gestito in caso di esito positivo. I motivi di errore possono includere le impostazioni dell'elemento, ad esempio Visibility un valore diverso da Visible.

Se si usa la firma che non specifica un targetRectangleoggetto , verrà resa visibile l'intera dimensione dell'elemento (relativa RenderSize).

Chiamando questo metodo, è possibile chiamare MakeVisible su qualsiasi area scorrevole padre contenente l'elemento . Se questo elemento non è contenuto in un'area scorrevole, l'evento RequestBringIntoView viene ancora generato, ma non vi sarà alcun effetto perché non sono presenti listener eventi.

Vedi anche

Si applica a