FrameworkElement.BringIntoView Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 targetRectangle
oggetto , 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 targetRectangle
oggetto , 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.