Point 구조체

정의

2차원 평면의 점을 정의하는 x 및 y 좌표 값을 나타냅니다.

public value class Point
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.FoundationContract, 65536)]
struct Point
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.FoundationContract), 65536)]
public struct Point
var point = {
x : /* Your value */,
y : /* Your value */
}
Public Structure Point
<object property="X,Y"/>
-or
<object property="X Y"/>
상속
Point
특성

Windows 요구 사항

디바이스 패밀리
Windows 10 (10.0.10240.0에서 도입되었습니다.)
API contract
Windows.Foundation.FoundationContract (v1.0에서 도입되었습니다.)

설명

Point 값은 앱의 기본 창 평면에 있는 좌표 공간을 나타내기도 하지만 Point 값을 사용하는 속성에 따라 달라질 수 있는 점 값의 다른 가능한 해석이 있습니다.

자바 스크립트: JavaScript에서 Point는 xy라는 두 개의 데이터 속성이 있는 개체입니다. xy 외에 Point 멤버 목록(또는 목차에 표시됨)에 나열된 나머지 API는 JavaScript 프로그래밍에 적용되지 않습니다.

XAML 구문에 대한 참고 사항

점 값은 Windows 런타임 앱용 XAML 어휘 전체에서 그래픽 속성 및 유사한 UI 관련 속성에 광범위하게 사용됩니다.

공백 또는 쉼표는 X 값과 Y 값 사이의 구분 기호로 사용할 수 있습니다. 좌표점에 대한 일반적인 규칙은 쉼표 구분 기호를 사용하는 것입니다.

지점 구조체는 ResourceDictionary에서 리소스로 선언할 수 없습니다. 잠재적인 해결 방법은 x:String 리소스를 사용한 다음 XamlReader.Load로 구문 분석된 문자열에 삽입하는 것입니다.

일부 XAML 사용법은 점 형식을 사용하여 논리적 점을 나타냅니다. 주의에서 "논리 지점"을 참조하세요.

점 값 및 속성으로 해석되는 방법

점 형식의 일부(전부는 아님) 사용은 좌표 공간의 위치를 지정합니다. 컨텍스트에 따라 위치가 콘텐츠 영역의 참조 프레임에 있거나 특정 레이아웃 요소에 대한 참조 프레임 내에 있을 수 있습니다.

점의 XY는 정수가 아닌 값일 수 있습니다. 그러나 이로 인해 하위 픽셀 렌더링의 가능성이 발생할 수 있으며, 이는 색을 변경하고 하위 픽셀 가장자리를 따라 직선을 앤티앨리어싱할 수 있습니다. 이것이 XAML 렌더링 엔진이 하위 픽셀 경계를 처리하는 방법입니다. 따라서 최상의 결과를 위해 UI 위치 지정 및 렌더링에 사용되는 좌표와 셰이프를 선언할 때 정수 값을 사용합니다.

경우에 따라 지점의 XY가 음수일 수 있습니다. 일반적으로 추가 번역이 없는 한 의도적으로 참조 프레임 외부에 있는 좌표를 지정하는 Point가 생성됩니다. 그러나 일부 XAML 속성은 음수 X 또는 Y 가 있는 Point를 잘못된 값으로 거부합니다. 값 제약 조건은 일반적으로 속성에 대한 참조 페이지에 기록됩니다.

논리적 점

Windows 런타임 앱에서 점 형식의 일부 사용법은 참조 프레임을 직접 조정하는 것과 관련이 없습니다. 대신 X와Y 값이 각각 0에서 1 사이여야 하는 논리적 지점입니다. 이것이 XY 값이 정수 값으로 제한되는 대신 부동 소수점 값을 지원하는 이유 중 하나입니다. 논리적 요소 값은 컨텍스트에 의해 해석됩니다. 최종 프레젠테이션 또는 동작은 다른 속성이나 설정에 의해 지정되거나 수정될 수 있습니다. 경우에 따라 포인트는 좌표 공간과 전혀 관련이 없는 정보를 표현합니다. 애플리케이션의 논리적 요소 개념의 예로는 Animation.KeySpline 값(애니메이션 속도), UIElementRenderTransformOrigin, LinearGradientBrush에 대한 GradientStop.Offset 값이 있습니다.

논리적 지점 사용법인 Point-value 속성은 0보다 작거나 1보다 큰 값을 무효화할 수 있지만 구체적인 내용은 속성에 따라 다릅니다. 값 제약 조건은 일반적으로 Point 참조가 아닌 개별 속성에 대한 참조 페이지에 기록됩니다.

점 값 및 XAML 그래픽 API

XAML UI를 정의하는 데 사용되는 그래픽 요소는 종종 Point-value 속성을 사용하여 특성을 선언합니다. 예를 들어 EllipseGeometry 는 Point 값을 사용하여 Center 속성을 설정합니다.

그래픽 요소는 두 모델 중 하나를 사용합니다. 일부 그래픽 요소는 FrameworkElement에서 파생됩니다. 이러한 요소는 UI에 배치되고 요소 속성이 할당된 경우 정의된 렌더링 동작을 갖습니다. 이러한 유형의 요소의 예로는 RectangleWindows.UI.Xaml.Shapes 네임스페이스의 다른 모든 형식이 있습니다. 다른 그래픽 요소는 FrameworkElement에서 파생되지 않으며 자체 렌더링 동작이 없습니다. 대신 이러한 요소는 렌더링 동작이 있는 다른 요소에서 속성 값을 제공하도록 구성됩니다. 즉, 보다 포괄적인 그래픽 모델을 위한 데이터입니다. 예를 들어 LineSegment와 같이 Path.Data를 작성하는 데 사용하는 그래픽 요소에는 종종 Point-value 속성이 있습니다.

일부 그래픽 요소는 단일 속성에 표시되는 여러 Point 값을 사용합니다. 이러한 속성은 PointCollection 형식을 사용합니다. PointCollection을 사용하는 모든 Windows 런타임 속성은 특성 문자열을 구문 분석하여 여러 지점에 대한 X 및 Y 값을 가져오는 XAML 구문을 지원합니다. PointCollection을 사용하는 그래픽 속성의 예는 Polygon.Points입니다.

XAML 입력 이벤트의 포인트 값 및 적중 테스트

특정 입력 이벤트에 대한 이벤트 데이터에서 Point 값이 반환됩니다. 예를 들어 GetCurrentPoint 는 앱 UI에서 Pointer 이벤트가 발생한 위치의 좌표 값을 제공합니다. 일반적으로 이러한 점 값은 좌표 참조의 특정 프레임을 참조하며 해당 참조 프레임이 무엇을 나타내는지 아는 것이 중요합니다. 입력 이벤트의 경우 기본적으로 참조 프레임은 전체 화면/디스플레이가 아닌 기본 앱 창입니다. 이렇게 하면 창이 이동되거나 크기가 조정되는 경우 일관된 참조 프레임을 사용할 수 있습니다. GetCurrentPointGetPosition과 같은 일부 API는 개별 컨트롤에서 처리하는 입력 이벤트로 작업할 때 유용한 요소별 참조 프레임으로 변환하는 방법도 제공합니다. 자세한 내용은 포인터 입력 처리를 참조하세요.

또한 XAML UI 개발에는 적중 테스트라는 개념이 있습니다. 여기서 유틸리티 메서드를 사용하여 사용자가 UI의 특정 좌표 위치에서 포인터 작업을 수행하는 경우 입력 이벤트가 정보를 보고하는 방법을 테스트할 수 있습니다. 적중 테스트 개념을 지원하기 위해 FindElementsInHostCoordinates 의 2개의 서명은 FindSubElementsForTouchTargeting과 마찬가지로 Point 입력 매개 변수를 사용합니다. 자세한 내용은 마우스 조작을 참조하세요.

점 값 애니메이션

Windows 런타임 속성이 종속성 속성으로 구현되는 한 Point를 값으로 사용하는 속성의 값에 애니메이션 효과를 주는 수단을 제공합니다. Point에는 Point의 xy 값에 개별적으로 애니메이션 효과를 주는 것이 불가능하기 때문에 고유한 애니메이션 지원 형식이 있습니다. 구조체는 종속성 속성을 지원할 수 없습니다. From-to 애니메이션에 PointAnimation 형식을 사용하거나 키 프레임 애니메이션 동작에 PointAnimationUsingKeyFrames 파생 형식을 사용합니다. Point 값에 애니메이션 효과를 주는 방법과 XAML UI에서 애니메이션이 작동하는 방법에 대한 자세한 내용은 스토리보드 애니메이션을 참조하세요.

Point의 프로젝션 및 멤버

Microsoft .NET 언어(C# 또는 Microsoft Visual Basic) 또는 Visual C++ 구성 요소 확장(C++/CX)을 사용하는 경우 Point에는 비데이터 멤버를 사용할 수 있으며 해당 데이터 멤버는 필드가 아닌 읽기-쓰기 속성으로 노출됩니다. .NET API 브라우저의 지점을 참조하세요.

C++/WinRT 또는 WINDOWS 런타임 WRL(템플릿 라이브러리)을 사용하여 프로그래밍하는 경우 데이터 멤버 필드만 Point의 멤버로 존재하며 .NET 프로젝션의 유틸리티 메서드 또는 속성을 사용할 수 없습니다. C++ 코드는 PointHelper 정적 클래스에서 사용할 수 있는 유사한 유틸리티 메서드에 액세스할 수 있습니다.

이 표에서는 .NET 및 C++에서 사용할 수 있는 동일한 메서드를 보여 줍니다.

.NET() C++(PointHelper)
Point(Double, Double) FromCoordinates(Single, Single)

필드

X

점의 가로 위치입니다.

Y

점의 세로 위치입니다.

적용 대상

추가 정보