FrameworkElement.BringIntoView Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.