FrameworkElement.BringIntoView Metodo

Definizione

Tenta di visualizzare questo elemento, all'interno di qualsiasi area scorrevole contenuta all'interno.

Overload

Nome Descrizione
BringIntoView(Rect)

Tenta di portare in visualizzazione le dimensioni dell'area specificate di questo elemento, all'interno di qualsiasi area scorrevole contenuta all'interno.

BringIntoView()

Tenta di visualizzare questo elemento, all'interno di qualsiasi area scorrevole contenuta all'interno.

BringIntoView(Rect)

Tenta di portare in visualizzazione le dimensioni dell'area specificate di questo elemento, all'interno di qualsiasi area scorrevole contenuta all'interno.

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 visualizzato anche.

Esempio

Nell'esempio seguente è presente un elemento grafico di grandi dimensioni in un'area di scorrimento vincolata. Un pulsante nella pagina dispone di un gestore che scorre la visualizzazione fino a una determinata area 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, si genera un RequestBringIntoView evento che ha origine dall'elemento corrente. Questo evento viene generato in modo che possa essere gestito da un ScrollVieweroggetto o da una classe derivata o simile. Il comportamento previsto è che l'evento viene gestito dall'elemento padre, contrassegnato come gestito nei dati dell'evento e che 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, ad eccezione del fatto che l'evento viene in genere contrassegnato come gestito in caso di esito positivo. I motivi dell'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 , l'intera dimensione dell'elemento (corrispondente RenderSize) verrà resa visibile.

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

Vedi anche

Si applica a

BringIntoView()

Tenta di visualizzare questo elemento, all'interno di qualsiasi area scorrevole contenuta all'interno.

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 navigazione dell'applicazione che risponde ogni volta che si passa all'URI (Uniform Resource Identifier) per includere un frammento. Il frammento viene denominato nell'URI che segue il segno hash (#) e il comportamento implementato fa sì che l'elemento scorrono 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, si genera un RequestBringIntoView evento che ha origine dall'elemento corrente. Questo evento viene generato in modo che possa essere gestito da un ScrollVieweroggetto o da una classe derivata o simile. Il comportamento previsto è che l'evento viene gestito dall'elemento padre, contrassegnato come gestito nei dati dell'evento e che 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, ad eccezione del fatto che l'evento viene in genere contrassegnato come gestito in caso di esito positivo. I motivi dell'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 , l'intera dimensione dell'elemento (corrispondente RenderSize) verrà resa visibile.

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

Vedi anche

Si applica a