Xamarin.Forms 공용 컨트롤 속성, 메서드 및 이벤트
이 Xamarin.FormsVisualElement
클래스는 애플리케이션에서 사용되는 대부분의 컨트롤에 대한 기본 클래스입니다 Xamarin.Forms . 클래스는 VisualElement
파생 클래스에 사용되는 많은 속성, 메서드 및 이벤트를 정의합니다.
속성
개체에서 VisualElement
사용할 수 있는 속성은 다음과 같습니다.
AnchorX
속성 AnchorX
은 배율 및 회전과 같은 변환에 대 한 X 축의 중심점을 정의 하는 값입니다 double
. 기본값은 0.5입니다.
AnchorY
이 AnchorY
속성은 double
배율 및 회전과 같은 변환에 대한 Y축의 중심점을 정의하는 값입니다. 기본값은 0.5입니다.
Background
이 Background
속성은 Brush
브러시를 모든 컨트롤의 배경으로 사용할 수 있도록 하는 값입니다. 기본값은 Brush.Default
입니다.
BackgroundColor
속성은 BackgroundColor
Color
컨트롤의 배경색을 결정하는 속성입니다. 설정하지 않으면 배경이 투명하게 렌더링되는 기본 Color
개체가 됩니다.
Behaviors
속성은 Behaviors
개체입니다 List
Behavior
. 동작을 사용하면 다시 사용할 수 있는 기능을 목록에 추가하여 요소에 연결할 수 있습니다 Behaviors
. 클래스에 대한 자세한 내용은 동작을 Behavior
참조 Xamarin.Forms 하세요.
Bounds
이 Bounds
속성은 컨트롤이 차지하는 공간을 나타내는 읽기 전용 Rectangle
개체입니다. Bounds
레이아웃 주기 동안 속성 값이 할당됩니다. 사각형 Rectangle
struct
의 교차 및 포함을 테스트하는 데 유용한 속성과 메서드가 포함되어 있습니다. 자세한 내용은 사각형 API를 Xamarin.Forms 참조하세요.
Clip
이 Clip
속성은 Geometry
요소 내용의 윤곽선을 정의하는 개체입니다. 클립을 정의하려면 요소의 Clip
속성을 설정하는 등의 EllipseGeometry
개체를 사용합니다Geometry
. 기하 도형 영역 내에 있는 영역만 표시됩니다. 자세한 내용은 기하 도형으로 잘라 내기를 참조하세요.
Effects
속성은 Effects
List
Effect
클래스에서 상속된 개체입니다.Element
효과를 사용하면 네이티브 컨트롤을 사용자 지정할 수 있으며 일반적으로 작은 스타일 변경에 사용됩니다. 클래스에 대한 Effect
자세한 내용은 효과를 참조 Xamarin.Forms 하세요.
FlowDirection
속성은 FlowDirection
열거형 값입니다 FlowDirection
. 흐름 방향을 설정MatchParent
LeftToRight
하거나 RightToLeft
레이아웃 순서와 방향을 결정할 수 있습니다. 이 FlowDirection
속성은 일반적으로 오른쪽에서 왼쪽으로 읽는 언어를 지원하는 데 사용됩니다.
Height
이 Height
속성은 컨트롤의 렌더링된 높이를 설명하는 읽기 전용 double
값입니다. 이 속성은 Height
레이아웃 주기 동안 계산되며 직접 설정할 수 없습니다. HeightRequest 속성을 사용하여 컨트롤의 높이를 요청할 수 있습니다.
HeightRequest
이 HeightRequest
속성은 double
컨트롤의 원하는 높이를 결정하는 값입니다. 컨트롤의 절대 높이가 요청된 값과 일치하지 않을 수 있습니다. 자세한 내용은 요청 속성을 참조 하세요.
InputTransparent
이 InputTransparent
속성은 bool
컨트롤이 사용자 입력을 받는지 여부를 결정하는 속성입니다. 기본값은 false
요소가 입력을 수신하도록 하는 것입니다. 이 속성은 설정되면 자식 요소로 전송됩니다. InputTransparent
속성을 true
레이아웃 클래스에 설정하면 레이아웃 내의 모든 요소가 입력을 받지 않습니다.
IsEnabled
이 IsEnabled
속성은 bool
컨트롤이 사용자 입력에 반응하는지 여부를 결정하는 값입니다. 기본값은 true
입니다. 이 속성을 false로 설정하면 컨트롤이 사용자 입력을 허용하지 않습니다.
IsFocused
이 IsFocused
속성은 bool
컨트롤이 현재 포커스가 있는 개체인지 여부를 설명하는 값입니다. 컨트롤에서 Focus
메서드를 호출하면 값이 IsFocused
true로 설정됩니다. 메서드를 호출하면 Unfocus
이 속성이 false로 설정됩니다.
IsTabStop
이 IsTabStop
속성은 bool
사용자가 탭 키를 사용하여 컨트롤을 통과할 때 컨트롤이 포커스를 받는지 여부를 정의하는 값입니다. 이 속성이 false이면 속성이 TabIndex
적용되지 않습니다.
IsVisible
속성은 IsVisible
bool
컨트롤이 렌더링되는지 여부를 결정하는 값입니다. 속성이 IsVisible
false로 설정된 컨트롤은 표시되지 않으며 레이아웃 주기 동안 공간 계산에 고려되지 않으며 사용자 입력을 수락할 수 없습니다.
MinimumHeightRequest
이 MinimumHeightRequest
속성은 double
제한된 공간에 대해 두 요소가 경쟁할 때 오버플로가 처리되는 방식을 결정하는 값입니다. MinimumHeightRequest
속성을 설정하면 레이아웃 프로세스에서 요소의 크기를 요청된 최소 차원으로 축소할 수 있습니다. 지정하지 MinimumHeightRequest
않으면 기본값은 -1이고 레이아웃 프로세스는 최소값으로 간주됩니다 HeightRequest
. 즉, 값이 없는 MinimumHeightRequest
요소의 높이가 확장 가능하지 않습니다.
자세한 내용은 최소 요청 속성을 참조 하세요.
MinimumWidthRequest
이 MinimumWidthRequest
속성은 double
제한된 공간에 대해 두 요소가 경쟁할 때 오버플로가 처리되는 방식을 결정하는 값입니다. MinimumWidthRequest
속성을 설정하면 레이아웃 프로세스에서 요소의 크기를 요청된 최소 차원으로 축소할 수 있습니다. 지정하지 MinimumWidthRequest
않으면 기본값은 -1이고 레이아웃 프로세스는 최소값으로 간주됩니다 WidthRequest
. 즉, 값이 없는 MinimumWidthRequest
요소의 너비는 확장성이 없습니다.
자세한 내용은 최소 요청 속성을 참조 하세요.
Opacity
이 Opacity
속성은 double
렌더링하는 동안 컨트롤의 불투명도를 결정하는 0에서 1까지의 값입니다. 이 속성의 기본값은 1.0입니다. 0에서 1까지의 범위를 벗어난 값은 고정됩니다. 속성은 Opacity
속성이 .인 IsVisible
경우에만 적용됩니다 true
. 불투명도는 반복적으로 적용됩니다. 따라서 부모 컨트롤의 불투명도가 0.5이고 자식의 불투명도가 0.5이면 자식은 유효 0.25 불투명도 값으로 렌더링됩니다. 입력 컨트롤의 Opacity
속성을 0으로 설정하면 정의되지 않은 동작이 발생합니다.
Parent
Parent
속성은 Element
클래스에서 상속됩니다. 이 속성은 Element
컨트롤의 부모 개체입니다. 속성은 Parent
일반적으로 다른 요소의 자식으로 추가 될 때 요소에 자동으로 설정 됩니다.
Resources
이 Resources
속성은 ResourceDictionary
일반적으로 XAML에서 런타임에 채워지는 키/값 쌍으로 채워진 인스턴스입니다. 이 사전을 사용하면 애플리케이션 개발자가 컴파일 시간과 런타임 모두에서 XAML에 정의된 개체를 다시 사용할 수 있습니다. 사전의 키는 XAML 태그의 특성에서 x:Key
채워집니다. XAML에서 만든 개체가 지정된 키에 ResourceDictionary
삽입됩니다. 초기화되면 입니다.
자세한 내용은 리소스 사전을 참조 하세요.
Rotation
이 Rotation
속성은 double
Z축에 대한 회전을 도 단위로 정의하는 0에서 360 사이의 값입니다. 이 속성의 기본값은 0입니다. 회전은 값과 AnchorY
값을 기준으로 AnchorX
적용됩니다.
RotationX
이 RotationX
속성은 double
X축에 대한 회전을 도 단위로 정의하는 0에서 360 사이의 값입니다. 이 속성의 기본값은 0입니다. 회전은 값과 AnchorY
값을 기준으로 AnchorX
적용됩니다.
RotationY
이 RotationY
속성은 double
Y축에 대한 회전을 도 단위로 정의하는 0에서 360 사이의 값입니다. 이 속성의 기본값은 0입니다. 회전은 값과 AnchorY
값을 기준으로 AnchorX
적용됩니다.
Scale
속성은 Scale
double
컨트롤의 배율을 정의하는 값입니다. 이 속성의 기본값은 1.0입니다. 크기 조정은 값과 AnchorY
값을 AnchorX
기준으로 적용됩니다.
ScaleX
이 ScaleX
속성은 double
X축을 따라 컨트롤의 배율을 정의하는 값입니다. 이 속성의 기본값은 1.0입니다. 이 ScaleX
속성은 값을 기준으로 적용됩니다 AnchorX
.
ScaleY
이 ScaleY
속성은 double
Y축을 따라 컨트롤의 배율을 정의하는 값입니다. 이 속성의 기본값은 1.0입니다. 이 ScaleY
속성은 값을 기준으로 적용됩니다 AnchorY
.
Style
Style
속성은 NavigableElement
클래스에서 상속됩니다. 이 속성은 클래스의 인스턴스입니다 Style
. 클래스에는 Style
시각적 요소의 모양과 동작을 정의하는 트리거, setter 및 동작이 포함됩니다. 자세한 내용은 XAML 스타일을 참조 Xamarin.Forms 하세요.
StyleClass
속성 StyleClass
은 클래스의 string
이름을 나타내는 개체의 Style
목록입니다. 이 속성은 NavigableElement
클래스에서 상속됩니다. 이 StyleClass
속성을 사용하면 여러 스타일 특성을 인스턴스에 적용할 VisualElement
수 있습니다. 자세한 내용은 스타일 클래스를 참조 Xamarin.Forms 하세요.
TabIndex
이 TabIndex
속성은 int
탭 키를 사용하여 컨트롤을 통과할 때 컨트롤 순서를 정의하는 값입니다. 이 TabIndex
속성은 클래스가 구현하는 인터페이스에 ITabStopElement
정의된 속성에 VisualElement
대한 구현입니다.
TranslationX
이 TranslationX
속성은 double
X축에 적용할 델타 변환을 정의하는 값입니다. 변환은 레이아웃 후에 적용되며 일반적으로 애니메이션을 적용하는 데 사용됩니다. 부모 컨테이너의 범위를 벗어난 요소를 변환하면 입력이 작동하지 않을 수 있습니다.
자세한 내용은 의 애니메이션을 참조 하세요 Xamarin.Forms.
TranslationY
이 TranslationY
속성은 double
Y축에 적용할 델타 변환을 정의하는 값입니다. 변환은 레이아웃 후에 적용되며 일반적으로 애니메이션을 적용하는 데 사용됩니다. 부모 컨테이너의 범위를 벗어난 요소를 변환하면 입력이 작동하지 않을 수 있습니다.
자세한 내용은 의 애니메이션을 참조 하세요 Xamarin.Forms.
Triggers
속성 Triggers
은 개체의 TriggerBase
읽기 전용 List
입니다. 트리거를 사용하면 애플리케이션 개발자가 이벤트 또는 속성 변경에 대한 응답으로 컨트롤의 시각적 모양을 변경하는 작업을 XAML로 표현할 수 있습니다. 자세한 내용은 트리거를 참조 Xamarin.Forms 하세요.
Visual
이 Visual
속성은 IVisual
렌더러를 만들고 인스턴스에 선택적으로 적용할 수 있는 VisualElement
인스턴스입니다. 속성은 Visual
해당 부모와 일치하도록 설정되므로 구성 요소에서 렌더러를 정의하면 해당 구성 요소의 모든 자식에도 적용됩니다. 컨트롤 또는 상위 항목에 사용자 지정 렌더러가 설정되지 않은 경우 기본 Xamarin.Forms 렌더러가 사용됩니다. 자세한 내용은 Visual을 참조 Xamarin.Forms 하세요.
Width
이 Width
속성은 컨트롤의 렌더링된 너비를 설명하는 읽기 전용 double
값입니다. 이 속성은 Width
레이아웃 주기 동안 계산되며 직접 설정할 수 없습니다. WidthRequest 속성을 사용하여 컨트롤의 너비를 요청할 수 있습니다.
WidthRequest
속성은 WidthRequest
double
컨트롤의 원하는 너비를 결정하는 값입니다. 컨트롤의 절대 너비가 요청된 값과 일치하지 않을 수 있습니다. 자세한 내용은 요청 속성을 참조 하세요.
X
이 X
속성은 컨트롤의 현재 X 위치를 설명하는 읽기 전용 double
값입니다.
Y
이 Y
속성은 컨트롤의 현재 Y 위치를 설명하는 읽기 전용 double
값입니다.
메서드
클래스에서 VisualElement
사용할 수 있는 메서드는 다음과 같습니다. 전체 목록은 VisualElement API 메서드를 참조 하세요.
FindByName
메서드는 FindByName
클래스에서 Element
상속되며 다음 시그니처가 있습니다.
public object FindByName (string name)
이 메서드는 제공된 name
인수에 대한 모든 자식 요소를 검색하고 지정된 이름을 포함하는 요소를 반환합니다. 일치하는 항목이 null
없으면 반환됩니다.
Focus
메서드는 Focus
요소에 포커스를 설정하려고 시도합니다. 이 메서드의 서명은 다음과 같습니다.
public bool Focus ()
이 메서드는 Focus
키보드 포커스가 성공적으로 설정되었는지와 false
메서드 호출로 인해 포커스가 변경되지 않았는지를 반환 true
합니다. 이 메서드가 작동하려면 요소가 포커스를 받을 수 있어야 합니다. Focus
오프스크린 또는 미실현 요소에서 메서드를 호출하면 정의되지 않은 동작이 있습니다.
Unfocus
메서드는 Unfocus
요소에 대한 포커스를 제거하려고 시도합니다. 이 메서드의 서명은 다음과 같습니다.
public void Unfocus ()
이 메서드가 작동하려면 요소에 포커스가 이미 있어야 합니다.
이벤트
클래스에서 VisualElement
사용할 수 있는 이벤트는 다음과 같습니다. 전체 목록은 VisualElement 이벤트를 참조 Xamarin.Forms 하세요.
Focused
인스턴스 Focused
가 포커스를 받을 때마다 VisualElement
이벤트가 발생합니다. 이 이벤트는 스택을 통해 버블링되지 않고 네이 Xamarin.Forms 티브 컨트롤에서 직접 수신됩니다. 이 이벤트는 속성 setter에 IsFocused
의해 내보내집니다.
SizeChanged
인스턴스 SizeChanged
또는 Width
속성이 변경될 때마다 VisualElement
Height
이벤트가 발생합니다. 개발자가 변경 후 이벤트에 응답하는 대신 크기 변경에 직접 응답하려는 경우 대신 가상 메서드를 OnSizeAllocated
구현해야 합니다.
Unfocused
인스턴스 Unfocused
가 포커스를 VisualElement
잃을 때마다 이벤트가 발생합니다. 이 이벤트는 스택을 통해 버블링되지 않고 네이 Xamarin.Forms 티브 컨트롤에서 직접 수신됩니다. 이 이벤트는 속성 setter에 IsFocused
의해 내보내집니다.
측정 단위
Android, iOS 및 UWP 플랫폼은 모두 디바이스에 따라 다를 수 있는 서로 다른 측정 단위를 갖습니다. Xamarin.Forms 는 디바이스 및 플랫폼에서 단위를 정규화하는 플랫폼 독립적 측정 단위를 사용합니다. 인치당 160 단위 또는 64 센티미터가 있습니다 Xamarin.Forms.
요청 속성
이름에 "request"가 포함된 속성은 실제 렌더링된 값과 일치하지 않을 수 있는 원하는 값을 정의합니다. 예를 들어 HeightRequest
150으로 설정할 수 있지만 레이아웃에서 100 단위의 공간만 허용하는 경우 컨트롤의 렌더링 Height
은 100입니다. 렌더링된 크기는 사용 가능한 공간 및 포함된 구성 요소의 영향을 받습니다.
최소 요청 속성
최소 요청 속성에는 포함 MinimumHeightRequest
및 MinimumWidthRequest
, 요소가 서로 상대적으로 오버플로를 처리하는 방법을 보다 정확하게 제어할 수 있도록 하기 위한 것입니다. 그러나 이러한 속성과 관련된 레이아웃 동작에는 몇 가지 중요한 고려 사항이 있습니다.
지정되지 않은 최소 속성 값
최소값이 설정되지 않은 경우 최소 속성의 기본값은 -1입니다. 레이아웃 프로세스는 이 값을 무시하고 절대값을 최소값으로 간주합니다. 이 동작의 실질적인 결과는 최소값이 지정 되지 않은 요소가 축소되지 않는다는 것입니다. 최소값이 지정된 요소가 축소됩니다 .
다음 XAML은 가로StackLayout
의 두 BoxView
요소를 보여줍니다.
<StackLayout Orientation="Horizontal">
<BoxView HeightRequest="100" BackgroundColor="Purple" WidthRequest="500"></BoxView>
<BoxView HeightRequest="100" BackgroundColor="Green" WidthRequest="500" MinimumWidthRequest="250"></BoxView>
</StackLayout>
첫 번째 BoxView
인스턴스는 너비 500을 요청하고 최소 너비를 지정하지 않습니다. 두 번째 BoxView
인스턴스는 너비 500과 최소 너비 250을 요청합니다. 부모 StackLayout
요소가 요청된 너비에 두 구성 요소를 모두 포함할 만큼 충분히 넓지 않은 경우 다른 유효한 최소값이 지정되지 않았기 때문에 레이아웃 프로세스에서 첫 번째 BoxView
인스턴스의 너비가 최소 500으로 간주됩니다. 두 번째 BoxView
인스턴스는 250으로 축소할 수 있으며 너비가 250 단위에 도달할 때까지 축소됩니다.
원하는 동작이 첫 번째 BoxView
인스턴스가 최소 너비 MinimumWidthRequest
없이 축소되는 경우 0과 같은 유효한 값으로 설정해야 합니다.
최소 및 절대 속성 값
최소값이 절대값보다 크면 동작이 정의되지 않습니다. 예를 들어 100으로 설정된 경우 WidthRequest
속성은 MinimumWidthRequest
100을 초과하지 않아야 합니다. 최소 속성 값을 지정할 때 절대값이 최소값보다 큰지 확인하기 위해 항상 절대값을 지정해야 합니다.
그리드 내의 최소 속성
Grid
레이아웃에는 행과 열의 상대적 크기 조정을 위한 고유한 시스템이 있습니다. 레이아웃을 사용하거나 MinimumHeightRequest
레이아웃 내에서 Grid
사용하는 MinimumWidthRequest
것은 영향을 미치지 않습니다. 자세한 내용은 Grid를 참조하세요Xamarin.Forms.