FrameworkElement.BringIntoView Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bu öğeyi, içinde bulunduğu kaydırılabilir bölgelerde görünüme getirmeye çalışır.
Aşırı Yüklemeler
BringIntoView(Rect) |
Bu öğenin sağlanan bölge boyutunu, içinde bulunduğu kaydırılabilir bölgelerde görüntülemeye çalışır. |
BringIntoView() |
Bu öğeyi, içinde bulunduğu kaydırılabilir bölgelerde görünüme getirmeye çalışır. |
BringIntoView(Rect)
Bu öğenin sağlanan bölge boyutunu, içinde bulunduğu kaydırılabilir bölgelerde görüntülemeye çalışır.
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)
Parametreler
- targetRectangle
- Rect
Ayrıca görünüme getirilmesi gereken öğenin belirtilen boyutu.
Örnekler
Aşağıdaki örnekte, kısıtlı bir kaydırma bölgesinde büyük bir grafik vardır. Sayfadaki düğmenin, görünümü büyük grafiğin belirli bir bölgesine kaydıran bir işleyicisi vardır.
<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
Açıklamalar
Bu yöntemi çağırarak geçerli öğeden kaynaklanan bir RequestBringIntoView olay oluşturursunuz. Bu olay, bir veya türetilmiş veya benzer bir ScrollViewersınıf tarafından işlenebilmesi için oluşturulur. Beklenen davranış, olayın üst öğe tarafından işlenmesi, olay verilerinde işlenmiş olarak işaretlenmesi ve olayın kaynağının denetime eklenmiş ScrollViewer mantık aracılığıyla görünüme getirilmesidir. RequestBringIntoView Olay veya BringIntoView yöntem, başarı veya başarısızlıkla ilgili herhangi bir bilgi iletmez; bunun dışında olay genellikle başarı üzerinde işlenir olarak işaretlenir. Hatanın nedenleri öğesi ayarlarını içerebilir, örneğin Visibility dışında Visiblebir değer olabilir.
belirtilmeyen targetRectangle
imzayı kullanırsanız, tüm öğe boyutu (onun RenderSize) görünür hale getirilecektir.
Bu yöntemi çağırarak, büyük olasılıkla öğesini içeren herhangi bir üst kaydırılabilir alanda çağrısı MakeVisible yapacaksınız. Bu öğe kaydırılabilir bir alanda yer almadıysa, RequestBringIntoView olay yine tetiklenir, ancak olay dinleyicileri olmadığından hiçbir etkisi olmaz.
Ayrıca bkz.
Şunlara uygulanır
BringIntoView()
Bu öğeyi, içinde bulunduğu kaydırılabilir bölgelerde görünüme getirmeye çalışır.
public:
void BringIntoView();
public void BringIntoView ();
member this.BringIntoView : unit -> unit
Public Sub BringIntoView ()
Örnekler
Aşağıdaki örnek, tekdüzen kaynak tanımlayıcısı (URI) bir parça içerdiğinde yanıt veren bir uygulama gezinti olayı için bir işleyici uygular. Parça, karma işaretinden (#) sonra URI'de adlandırılır ve uygulanan davranış öğenin çerçeve içinde görünüme kaymasına neden olur. BringIntoView ve RequestBringIntoView örnekte kaydırma davranışını isteyin.
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
Açıklamalar
Bu yöntemi çağırarak geçerli öğeden kaynaklanan bir RequestBringIntoView olay oluşturursunuz. Bu olay, bir veya türetilmiş veya benzer bir ScrollViewersınıf tarafından işlenebilmesi için oluşturulur. Beklenen davranış, olayın üst öğe tarafından işlenmesi, olay verilerinde işlenmiş olarak işaretlenmesi ve olayın kaynağının denetime eklenmiş ScrollViewer mantık aracılığıyla görünüme getirilmesidir. RequestBringIntoView Olay veya BringIntoView yöntem, başarı veya başarısızlıkla ilgili herhangi bir bilgi iletmez; bunun dışında olay genellikle başarı üzerinde işlenir olarak işaretlenir. Hatanın nedenleri öğesi ayarlarını içerebilir, örneğin Visibility dışında Visiblebir değer olabilir.
belirtilmeyen targetRectangle
imzayı kullanırsanız, tüm öğe boyutu (onun RenderSize) görünür hale getirilecektir.
Bu yöntemi çağırarak, büyük olasılıkla öğesini içeren herhangi bir üst kaydırılabilir alanda çağrısı MakeVisible yapacaksınız. Bu öğe kaydırılabilir bir alanda yer almadıysa, RequestBringIntoView olay yine tetiklenir, ancak olay dinleyicileri olmadığından hiçbir etkisi olmaz.