FrameworkElement.BringIntoView Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Upaya untuk menampilkan elemen ini, dalam wilayah yang dapat digulir di dalamnya.
Overload
BringIntoView(Rect) |
Upaya untuk menampilkan ukuran wilayah yang disediakan dari elemen ini, dalam wilayah yang dapat digulir di dalamnya. |
BringIntoView() |
Upaya untuk menampilkan elemen ini, dalam wilayah yang dapat digulir di dalamnya. |
BringIntoView(Rect)
Upaya untuk menampilkan ukuran wilayah yang disediakan dari elemen ini, dalam wilayah yang dapat digulir di dalamnya.
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)
Parameter
- targetRectangle
- Rect
Ukuran elemen yang ditentukan yang juga harus dilihat.
Contoh
Contoh berikut memiliki grafik besar di wilayah pengguliran yang dibatasi. Tombol di halaman memiliki handler yang menggulir tampilan ke wilayah tertentu dari grafik besar.
<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
Keterangan
Dengan memanggil metode ini, Anda menaikkan RequestBringIntoView peristiwa yang berasal dari elemen saat ini. Kejadian ini dinaikkan sehingga dapat ditangani oleh ScrollViewer, atau kelas turunan atau sejenisnya. Perilaku yang diharapkan adalah bahwa peristiwa ditangani oleh elemen induk, ditandai ditangani dalam data peristiwa, dan sumber peristiwa dibawa ke tampilan melalui logika yang disematkan dalam ScrollViewer kontrol. RequestBringIntoView Baik peristiwa maupun BringIntoView metode tidak mengirimkan informasi apa pun tentang keberhasilan atau kegagalan, selain itu peristiwa biasanya ditandai ditangani pada keberhasilan. Alasan kegagalan dapat mencakup pengaturan elemen, seperti Visibility menjadi beberapa nilai selain Visible.
Jika Anda menggunakan tanda tangan yang tidak menentukan targetRectangle
, maka seluruh ukuran elemen (-nya RenderSize) akan dibuat terlihat.
Dengan memanggil metode ini, Anda berpotensi akan memanggil MakeVisible pada area yang dapat digulir induk yang berisi elemen . Jika elemen ini tidak terkandung dalam area yang dapat digulir, RequestBringIntoView peristiwa masih dinaikkan, tetapi tidak akan ada efek karena tidak ada pendengar peristiwa.
Lihat juga
Berlaku untuk
BringIntoView()
Upaya untuk menampilkan elemen ini, dalam wilayah yang dapat digulir di dalamnya.
public:
void BringIntoView();
public void BringIntoView ();
member this.BringIntoView : unit -> unit
Public Sub BringIntoView ()
Contoh
Contoh berikut mengimplementasikan handler untuk peristiwa navigasi aplikasi yang merespons setiap kali pengidentifikasi sumber daya seragam (URI) dinavigasi untuk menyertakan fragmen. Fragmen dinamai dalam URI dengan mengikuti tanda hash (#), dan perilaku yang diterapkan menyebabkan elemen menggulir ke tampilan dalam bingkai. BringIntoView dan RequestBringIntoView meminta perilaku menggulir dalam contoh.
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
Keterangan
Dengan memanggil metode ini, Anda menaikkan RequestBringIntoView peristiwa yang berasal dari elemen saat ini. Kejadian ini dinaikkan sehingga dapat ditangani oleh ScrollViewer, atau kelas turunan atau sejenisnya. Perilaku yang diharapkan adalah bahwa peristiwa ditangani oleh elemen induk, ditandai ditangani dalam data peristiwa, dan sumber peristiwa dibawa ke tampilan melalui logika yang disematkan dalam ScrollViewer kontrol. RequestBringIntoView Baik peristiwa maupun BringIntoView metode tidak mengirimkan informasi apa pun tentang keberhasilan atau kegagalan, selain itu peristiwa biasanya ditandai ditangani pada keberhasilan. Alasan kegagalan dapat mencakup pengaturan elemen, seperti Visibility menjadi beberapa nilai selain Visible.
Jika Anda menggunakan tanda tangan yang tidak menentukan targetRectangle
, maka seluruh ukuran elemen (-nya RenderSize) akan dibuat terlihat.
Dengan memanggil metode ini, Anda berpotensi akan memanggil MakeVisible pada area yang dapat digulir induk yang berisi elemen . Jika elemen ini tidak terkandung dalam area yang dapat digulir, RequestBringIntoView peristiwa masih dinaikkan, tetapi tidak akan ada efek karena tidak ada pendengar peristiwa.