FrameworkElement.BringIntoView Método

Definição

Tenta trazer este elemento à vista, dentro de quaisquer regiões roláveis onde esteja contido.

Sobrecargas

Name Description
BringIntoView(Rect)

Tenta trazer o tamanho da região fornecida deste elemento à vista, dentro de quaisquer regiões roláveis onde esteja contido.

BringIntoView()

Tenta trazer este elemento à vista, dentro de quaisquer regiões roláveis onde esteja contido.

BringIntoView(Rect)

Tenta trazer o tamanho da região fornecida deste elemento à vista, dentro de quaisquer regiões roláveis onde esteja contido.

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)

Parâmetros

targetRectangle
Rect

Tamanho especificado do elemento que também deve ser apresentado.

Exemplos

O exemplo seguinte apresenta um gráfico grande numa região de rolagem restrita. Um botão na página tem um handler que desloca a vista para uma região específica do grande gráfico.

<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

Observações

Ao chamar este método, gera-se um RequestBringIntoView evento que se origina do elemento atual. Este evento é elevado para que possa ser tratado por uma ScrollViewer, ou uma classe derivada ou semelhante. O comportamento esperado é que o evento seja tratado pelo elemento pai, marcado como tratado nos dados do evento, e a origem do evento seja apresentada através da lógica embutida no ScrollViewer controlo. Nem o RequestBringIntoView evento nem o BringIntoView método transmitem qualquer informação sobre sucesso ou fracasso, exceto que o evento é normalmente marcado como tratado como sucesso. As razões para a falha podem incluir as definições do elemento, como Visibility ser algum valor diferente de Visible.

Se usar a assinatura que não especifica um targetRectangle, então o tamanho total do elemento (seu RenderSize) será tornado visível.

Ao chamar este método, potencialmente irá invocar MakeVisible qualquer área de deslocamento parental que contenha o elemento. Se este elemento não estiver contido numa área deslocável, o RequestBringIntoView evento continua a ser elevado, mas não haverá efeito porque não há ouvintes de eventos.

Ver também

Aplica-se a

BringIntoView()

Tenta trazer este elemento à vista, dentro de quaisquer regiões roláveis onde esteja contido.

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

Exemplos

O exemplo seguinte implementa um handler para um evento de navegação de aplicação que responde sempre que o identificador uniforme de recurso (URI) para onde está a ser navegado inclui um fragmento. O fragmento é nomeado no URI após o sinal de hash (#), e o comportamento implementado faz com que o elemento desloque para a vista dentro do frame. BringIntoView e RequestBringIntoView solicitar esse comportamento de scroll no exemplo.

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

Observações

Ao chamar este método, gera-se um RequestBringIntoView evento que se origina do elemento atual. Este evento é elevado para que possa ser tratado por uma ScrollViewer, ou uma classe derivada ou semelhante. O comportamento esperado é que o evento seja tratado pelo elemento pai, marcado como tratado nos dados do evento, e a origem do evento seja apresentada através da lógica embutida no ScrollViewer controlo. Nem o RequestBringIntoView evento nem o BringIntoView método transmitem qualquer informação sobre sucesso ou fracasso, exceto que o evento é normalmente marcado como tratado como sucesso. As razões para a falha podem incluir as definições do elemento, como Visibility ser algum valor diferente de Visible.

Se usar a assinatura que não especifica um targetRectangle, então o tamanho total do elemento (seu RenderSize) será tornado visível.

Ao chamar este método, potencialmente irá invocar MakeVisible qualquer área de deslocamento parental que contenha o elemento. Se este elemento não estiver contido numa área deslocável, o RequestBringIntoView evento continua a ser elevado, mas não haverá efeito porque não há ouvintes de eventos.

Ver também

Aplica-se a