FrameworkElement.BringIntoView Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Pogingen om dit element in beeld te brengen, binnen alle schuifbare regio's waarin het zich bevindt.
Overloads
| Name | Description |
|---|---|
| BringIntoView(Rect) |
Pogingen om de opgegeven regiogrootte van dit element in beeld te brengen, binnen alle schuifbare regio's waarin het zich bevindt. |
| BringIntoView() |
Pogingen om dit element in beeld te brengen, binnen alle schuifbare regio's waarin het zich bevindt. |
BringIntoView(Rect)
Pogingen om de opgegeven regiogrootte van dit element in beeld te brengen, binnen alle schuifbare regio's waarin het zich bevindt.
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)
Parameters
- targetRectangle
- Rect
De opgegeven grootte van het element dat ook in beeld moet worden gebracht.
Voorbeelden
In het volgende voorbeeld ziet u een grote afbeelding in een beperkt schuifgebied. Een knop op de pagina heeft een handler waarmee de weergave naar een bepaald gebied van de grote afbeelding wordt geschoven.
<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
Opmerkingen
Door deze methode aan te roepen, genereert u een RequestBringIntoView gebeurtenis die afkomstig is van het huidige element. Deze gebeurtenis wordt gegenereerd, zodat deze kan worden verwerkt door een ScrollViewer, of een afgeleide of vergelijkbare klasse. Het verwachte gedrag is dat de gebeurtenis wordt verwerkt door het bovenliggende element, gemarkeerd in de gebeurtenisgegevens en dat de bron van de gebeurtenis wordt weergegeven via de logica die is ingesloten in het ScrollViewer besturingselement. RequestBringIntoView De gebeurtenis of de BringIntoView methode verzendt geen informatie over geslaagde of mislukte gebeurtenissen, behalve dat de gebeurtenis doorgaans wordt gemarkeerd als geslaagd. Redenen voor fouten kunnen de elementinstellingen zijn, zoals Visibility een andere waarde dan Visible.
Als u de handtekening gebruikt waarmee geen opgegeven targetRectangleis, wordt de gehele elementgrootte (de bijbehorende RenderSize) zichtbaar gemaakt.
Door deze methode aan te roepen, wordt mogelijk een bovenliggend schuifbaar gebied aangeroepen MakeVisible dat het element bevat. Als dit element zich niet in een schuifbaar gebied bevindt, wordt de RequestBringIntoView gebeurtenis nog steeds gegenereerd, maar is er geen effect omdat er geen gebeurtenislisteners zijn.
Zie ook
Van toepassing op
BringIntoView()
Pogingen om dit element in beeld te brengen, binnen alle schuifbare regio's waarin het zich bevindt.
public:
void BringIntoView();
public void BringIntoView();
member this.BringIntoView : unit -> unit
Public Sub BringIntoView ()
Voorbeelden
In het volgende voorbeeld wordt een handler geïmplementeerd voor een toepassingsnavigatiegebeurtenis die reageert wanneer de URI (Uniform Resource Identifier) naar een fragment wordt genavigeerd. Het fragment heet in de URI na het hash-teken (#) en het geïmplementeerde gedrag zorgt ervoor dat het element in beeld schuift binnen het frame. BringIntoView en RequestBringIntoView vraag het scrollgedrag in het voorbeeld aan.
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
Opmerkingen
Door deze methode aan te roepen, genereert u een RequestBringIntoView gebeurtenis die afkomstig is van het huidige element. Deze gebeurtenis wordt gegenereerd, zodat deze kan worden verwerkt door een ScrollViewer, of een afgeleide of vergelijkbare klasse. Het verwachte gedrag is dat de gebeurtenis wordt verwerkt door het bovenliggende element, gemarkeerd in de gebeurtenisgegevens en dat de bron van de gebeurtenis wordt weergegeven via de logica die is ingesloten in het ScrollViewer besturingselement. RequestBringIntoView De gebeurtenis of de BringIntoView methode verzendt geen informatie over geslaagde of mislukte gebeurtenissen, behalve dat de gebeurtenis doorgaans wordt gemarkeerd als geslaagd. Redenen voor fouten kunnen de elementinstellingen zijn, zoals Visibility een andere waarde dan Visible.
Als u de handtekening gebruikt waarmee geen opgegeven targetRectangleis, wordt de gehele elementgrootte (de bijbehorende RenderSize) zichtbaar gemaakt.
Door deze methode aan te roepen, wordt mogelijk een bovenliggend schuifbaar gebied aangeroepen MakeVisible dat het element bevat. Als dit element zich niet in een schuifbaar gebied bevindt, wordt de RequestBringIntoView gebeurtenis nog steeds gegenereerd, maar is er geen effect omdat er geen gebeurtenislisteners zijn.