FrameworkElement.BringIntoView Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Försöker visa det här elementet i alla rullningsbara regioner som det finns i.
Överlagringar
| Name | Description |
|---|---|
| BringIntoView(Rect) |
Försöker visa den angivna regionstorleken för det här elementet i alla rullningsbara regioner som det finns i. |
| BringIntoView() |
Försöker visa det här elementet i alla rullningsbara regioner som det finns i. |
BringIntoView(Rect)
Försöker visa den angivna regionstorleken för det här elementet i alla rullningsbara regioner som det finns i.
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)
Parametrar
- targetRectangle
- Rect
Angiven storlek på det element som också ska visas.
Exempel
I följande exempel finns en stor bild i en begränsad rullningsregion. En knapp på sidan har en hanterare som rullar vyn till en viss region i den stora grafiken.
<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
Kommentarer
Genom att anropa den här metoden skapar du en RequestBringIntoView händelse som kommer från det aktuella elementet. Den här händelsen aktiveras så att den kan hanteras av en ScrollViewer, eller en härledd eller liknande klass. Det förväntade beteendet är att händelsen hanteras av det överordnade elementet, markerat som hanterat i händelsedata, och källan till händelsen visas via logiken som är inbäddad i ScrollViewer kontrollen. Varken händelsen RequestBringIntoView eller BringIntoView metoden överför någon information om lyckade eller misslyckade händelser, förutom att händelsen vanligtvis markeras som hanterad vid lyckad körning. Orsaker till fel kan vara elementinställningarna, till exempel Visibility ett annat värde än Visible.
Om du använder signaturen som inte anger en targetRectanglevisas hela elementstorleken (dess RenderSize).
Genom att anropa den här metoden anropar MakeVisible du eventuellt ett överordnat rullningsbart område som innehåller elementet. Om det här elementet inte finns i ett rullningsbart område RequestBringIntoView aktiveras händelsen fortfarande, men det blir ingen effekt eftersom det inte finns några händelselyssnare.
Se även
Gäller för
BringIntoView()
Försöker visa det här elementet i alla rullningsbara regioner som det finns i.
public:
void BringIntoView();
public void BringIntoView();
member this.BringIntoView : unit -> unit
Public Sub BringIntoView ()
Exempel
I följande exempel implementeras en hanterare för en programnavigeringshändelse som svarar när den enhetliga resursidentifieraren (URI) navigeras till innehåller ett fragment. Fragmentet namnges i URI:n efter hash-tecknet (#), och det implementerade beteendet gör att elementet rullas in i vyn inom ramen. BringIntoView och RequestBringIntoView begär att rullningsbeteendet i exemplet.
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
Kommentarer
Genom att anropa den här metoden skapar du en RequestBringIntoView händelse som kommer från det aktuella elementet. Den här händelsen aktiveras så att den kan hanteras av en ScrollViewer, eller en härledd eller liknande klass. Det förväntade beteendet är att händelsen hanteras av det överordnade elementet, markerat som hanterat i händelsedata, och källan till händelsen visas via logiken som är inbäddad i ScrollViewer kontrollen. Varken händelsen RequestBringIntoView eller BringIntoView metoden överför någon information om lyckade eller misslyckade händelser, förutom att händelsen vanligtvis markeras som hanterad vid lyckad körning. Orsaker till fel kan vara elementinställningarna, till exempel Visibility ett annat värde än Visible.
Om du använder signaturen som inte anger en targetRectanglevisas hela elementstorleken (dess RenderSize).
Genom att anropa den här metoden anropar MakeVisible du eventuellt ett överordnat rullningsbart område som innehåller elementet. Om det här elementet inte finns i ett rullningsbart område RequestBringIntoView aktiveras händelsen fortfarande, men det blir ingen effekt eftersom det inte finns några händelselyssnare.