Sdílet prostřednictvím


FrameworkElement.BringIntoView Metoda

Definice

Pokusí se přenést tento prvek do zobrazení v rámci všech posouvatelných oblastí, ve kterých je obsažen.

Přetížení

BringIntoView(Rect)

Pokusí se zobrazit zadanou velikost oblasti tohoto prvku v rámci všech posouvatelných oblastí, ve kterých je obsažen.

BringIntoView()

Pokusí se přenést tento prvek do zobrazení v rámci všech posouvatelných oblastí, ve kterých je obsažen.

BringIntoView(Rect)

Pokusí se zobrazit zadanou velikost oblasti tohoto prvku v rámci všech posouvatelných oblastí, ve kterých je obsažen.

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)

Parametry

targetRectangle
Rect

Zadaná velikost prvku, který by měl být také uveden do zobrazení.

Příklady

Následující příklad obsahuje velkou grafiku v omezené oblasti posouvání. Tlačítko na stránce má obslužnou rutinu, která posouvá zobrazení do konkrétní oblasti velké grafiky.

<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

Poznámky

Voláním této metody vyvoláte RequestBringIntoView událost, která pochází z aktuálního prvku. Tato událost je vyvolána tak, aby ji bylo možné zpracovat ScrollViewerpomocí třídy , nebo odvozené nebo podobné třídy. Očekávané chování je, že událost je zpracována nadřazeným elementem, označena v datech události a zdroj události je uveden do zobrazení prostřednictvím logiky vložené v ovládacím ScrollViewer prvku. RequestBringIntoView Událost ani BringIntoView metoda nepřenášejí žádné informace o úspěchu nebo selhání kromě toho, že událost je obvykle označena jako zpracována při úspěchu. Mezi důvody selhání může patřit nastavení elementu, například Visibility jiná hodnota než Visible.

Pokud použijete podpis, který neurčil targetRectangle, zobrazí se celá velikost elementu (jeho RenderSize).

Voláním této metody budete potenciálně volat MakeVisible v jakékoli nadřazené posouvatelné oblasti, která obsahuje prvek. Pokud tento prvek není obsažen v posouvatelné oblasti, RequestBringIntoView událost je stále vyvolána, ale nebude mít žádný vliv, protože neexistují žádné naslouchací procesy událostí.

Viz také

Platí pro

BringIntoView()

Pokusí se přenést tento prvek do zobrazení v rámci všech posouvatelných oblastí, ve kterých je obsažen.

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

Příklady

Následující příklad implementuje obslužnou rutinu pro událost navigace aplikace, která reaguje vždy, když identifikátor URI (Uniform Resource Identifier) bude obsahovat fragment. Fragment je v identifikátoru URI pojmenovaný za znaménkem hash (#) a implementované chování způsobí, že se prvek posune do zobrazení v rámci rámce. BringIntoView a RequestBringIntoView vyžádejte si toto chování při posouvání v příkladu.

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

Poznámky

Voláním této metody vyvoláte RequestBringIntoView událost, která pochází z aktuálního prvku. Tato událost je vyvolána tak, aby ji bylo možné zpracovat ScrollViewerpomocí třídy , nebo odvozené nebo podobné třídy. Očekávané chování je, že událost je zpracována nadřazeným elementem, označena v datech události a zdroj události je uveden do zobrazení prostřednictvím logiky vložené v ovládacím ScrollViewer prvku. RequestBringIntoView Událost ani BringIntoView metoda nepřenášejí žádné informace o úspěchu nebo selhání kromě toho, že událost je obvykle označena jako zpracována při úspěchu. Mezi důvody selhání může patřit nastavení elementu, například Visibility jiná hodnota než Visible.

Pokud použijete podpis, který neurčil targetRectangle, zobrazí se celá velikost elementu (jeho RenderSize).

Voláním této metody budete potenciálně volat MakeVisible v jakékoli nadřazené posouvatelné oblasti, která obsahuje prvek. Pokud tento prvek není obsažen v posouvatelné oblasti, RequestBringIntoView událost je stále vyvolána, ale nebude mít žádný vliv, protože neexistují žádné naslouchací procesy událostí.

Viz také

Platí pro