FrameworkElement.BringIntoView 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
이 요소를 포함된 스크롤 가능한 영역 내에서 뷰에 표시하려고 합니다.
오버로드
BringIntoView(Rect) |
이 요소의 제공된 영역 크기를 요소가 포함된 스크롤 가능 영역 내에서 뷰에 표시하려고 합니다. |
BringIntoView() |
이 요소를 포함된 스크롤 가능한 영역 내에서 뷰에 표시하려고 합니다. |
BringIntoView(Rect)
이 요소의 제공된 영역 크기를 요소가 포함된 스크롤 가능 영역 내에서 뷰에 표시하려고 합니다.
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)
매개 변수
- targetRectangle
- Rect
뷰에 함께 표시할 요소의 지정된 크기입니다.
예제
다음 예제에는 제한된 스크롤 영역에 큰 그래픽이 있습니다. 페이지의 단추에는 보기를 큰 그래픽의 특정 영역으로 스크롤하는 처리기가 있습니다.
<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
설명
이 메서드를 RequestBringIntoView 호출하면 현재 요소에서 발생하는 이벤트가 발생합니다. 이 이벤트는 , 또는 파생 또는 유사한 클래스에서 ScrollViewer처리할 수 있도록 발생합니다. 예상된 동작은 이벤트가 부모 요소에 의해 처리되고 이벤트 데이터에서 처리된 것으로 표시되며, 이벤트의 원본이 컨트롤에 포함된 ScrollViewer 논리를 통해 보기로 전환됩니다. RequestBringIntoView 이벤트나 메서드는 BringIntoView 성공 또는 실패에 대한 정보를 전송하지 않으며, 일반적으로 성공 시 처리된 것으로 표시된 이벤트 외에는 아무 정보도 전송하지 않습니다. 실패 원인에는 요소 설정(예: Visibility 가 아닌 Visible일부 값)이 포함될 수 있습니다.
를 지정 targetRectangle
하지 않는 서명을 사용하는 경우 전체 요소 크기(해당 )가 RenderSize표시됩니다.
이 메서드를 호출하면 요소가 포함된 모든 부모 스크롤 가능 영역에서 를 호출 MakeVisible 할 수 있습니다. 이 요소가 스크롤 가능한 영역에 RequestBringIntoView 포함되어 있지 않으면 이벤트가 계속 발생하지만 이벤트 수신기가 없으므로 아무런 효과가 없습니다.
추가 정보
적용 대상
BringIntoView()
이 요소를 포함된 스크롤 가능한 영역 내에서 뷰에 표시하려고 합니다.
public:
void BringIntoView();
public void BringIntoView ();
member this.BringIntoView : unit -> unit
Public Sub BringIntoView ()
예제
다음 예제에서는 탐색 중인 URI(Uniform Resource Identifier)에 조각이 포함될 때마다 응답하는 애플리케이션 탐색 이벤트에 대한 처리기를 구현합니다. 조각의 이름은 해시 기호(#)에 따라 URI에 지정되며 구현된 동작으로 인해 요소가 프레임 내에서 보기로 스크롤됩니다. BringIntoView 및 RequestBringIntoView 는 예제에서 스크롤 동작을 요청합니다.
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
설명
이 메서드를 RequestBringIntoView 호출하면 현재 요소에서 발생하는 이벤트가 발생합니다. 이 이벤트는 , 또는 파생 또는 유사한 클래스에서 ScrollViewer처리할 수 있도록 발생합니다. 예상된 동작은 이벤트가 부모 요소에 의해 처리되고 이벤트 데이터에서 처리된 것으로 표시되며, 이벤트의 원본이 컨트롤에 포함된 ScrollViewer 논리를 통해 보기로 전환됩니다. RequestBringIntoView 이벤트나 메서드는 BringIntoView 성공 또는 실패에 대한 정보를 전송하지 않으며, 일반적으로 성공 시 처리된 것으로 표시된 이벤트 외에는 아무 정보도 전송하지 않습니다. 실패 원인에는 요소 설정(예: Visibility 가 아닌 Visible일부 값)이 포함될 수 있습니다.
를 지정 targetRectangle
하지 않는 서명을 사용하는 경우 전체 요소 크기(해당 )가 RenderSize표시됩니다.
이 메서드를 호출하면 요소가 포함된 모든 부모 스크롤 가능 영역에서 를 호출 MakeVisible 할 수 있습니다. 이 요소가 스크롤 가능한 영역에 RequestBringIntoView 포함되어 있지 않으면 이벤트가 계속 발생하지만 이벤트 수신기가 없으므로 아무런 효과가 없습니다.
추가 정보
적용 대상
.NET