Xamarin Forms 스위치Xamarin.Forms Switch

샘플 다운로드 샘플 다운로드Download Sample Download the sample

Xamarin.ios Switch 컨트롤은 사용자가 boolean 값으로 표시 되는 설정/해제 상태를 전환 하기 위해 조작할 수 있는 가로 토글 단추입니다.The Xamarin.Forms Switch control is a horizontal toggle button that can be manipulated by the user to toggle between on and off states, which are represented by a boolean value. 클래스 Switch 는에서 View상속 됩니다.The Switch class inherits from View.

다음 스크린샷에서는 iOS 및 Switch Android의 설정 / 해제 상태에 있는 컨트롤을 보여 줍니다.The following screenshots show a Switch control in its on and off toggle states on iOS and Android:

IOS 및 Android에서 on 및 off 상태의 스위치 스크린샷Screenshot of Switches in on and off states, on iOS and Android

컨트롤 Switch 은 다음 두 가지 속성을 정의 합니다.The Switch control defines two properties:

  • IsToggled가 설정 Switch 되어 있는지 여부를 나타내는 값입니다.booleanIsToggled is a boolean value that indicates whether the Switch is on.
  • OnColor가 전환 또는 상태에서 렌더링 Switch 되는 방식에 영향을 주는입니다.ColorOnColor is a Color that affects how the Switch is rendered in the toggled, or on, state.
  • ThumbColor는 스위치 엄지의입니다. ColorThumbColor is the Color of the switch thumb.

이러한 속성은 BindableProperty 개체에 의해 지원 됩니다. 즉, Switch 가 스타일을 지정 하 고 데이터 바인딩의 대상이 될 수 있습니다.These properties are backed by a BindableProperty object, which means the Switch can be styled and be the target of data bindings.

컨트롤 Switch Toggled 은 사용자조작이IsToggled 나 응용 프로그램에서 속성을설정하여속성이변경될때발생하는이벤트를정의합니다.IsToggledThe Switch control defines a Toggled event that is fired when the IsToggled property changes, either through user manipulation or when an application sets the IsToggled property. 이벤트와 Toggled 함께 제공 되는 bool Value ToggledEventArgs 개체에는 형식의 이라는 단일 속성이 있습니다.The ToggledEventArgs object that accompanies the Toggled event has a single property named Value, of type bool. 이벤트가 발생 하면 속성의 값 ValueIsToggled 속성의 새 값을 반영 합니다.When the event is fired, the value of the Value property reflects the new value of the IsToggled property.

스위치 만들기Create a Switch

Switch XAML에서 인스턴스화될 수 있습니다.A Switch can be instantiated in XAML. 속성을 설정 하 여를 Switch토글할 수 있습니다. IsToggledIts IsToggled property can be set to toggle the Switch. 기본적으로 IsToggled 속성은 false합니다.By default, the IsToggled property is false. 다음 예제에서는 선택적 Switch IsToggled 속성 집합을 사용 하 여 XAML에서를 인스턴스화하는 방법을 보여 줍니다.The following example shows how to instantiate a Switch in XAML with the optional IsToggled property set:

<Switch IsToggled="true"/>

코드 Switch 에서를 만들 수도 있습니다.A Switch can also be created in code:

Switch switchControl = new Switch { IsToggled = true };

모양 전환Switch appearance

Switch ThumbColor OnColor 클래스Switch에서상속 되는 속성 외에도 및 속성을 정의 합니다. ViewIn addition to the properties that Switch inherits from the View class, Switch also defines OnColor and ThumbColor properties. Color ThumbColor Switch 속성을 설정 하 여 해당 상태로 전환 될 때 색을 정의 하 고, 속성을 설정 하 여 스위치 엄지의를 정의할 수 있습니다. OnColorThe OnColor property can be set to define the Switch color when it is toggled to its on state, and the ThumbColor property can be set to define the Color of the switch thumb. 다음 예제에서는 이러한 속성을 설정 하 Switch 여 XAML에서를 인스턴스화하는 방법을 보여 줍니다.The following example shows how to instantiate a Switch in XAML with these properties set:

<Switch OnColor="Orange"
        ThumbColor="Green" />

코드에서를 Switch 만들 때 속성을 설정할 수도 있습니다.The properties can also be set when creating a Switch in code:

Switch switch = new Switch { OnColor = Color.Orange, ThumbColor = Color.Green };

다음 스크린샷은 Switch OnColor 및 속성이ThumbColor 설정 된 on 및 off 토글 상태의을 보여 줍니다.The following screenshot shows the Switch in its on and off toggle states, with the OnColor and ThumbColor properties set:

IOS 및 Android에서 on 및 off 상태의 스위치 스크린샷Screenshot of Switches in on and off states, on iOS and Android

전환 상태 변경에 응답Respond to a Switch state change

속성이 변경 되 면 사용자 조작을 통해 또는 응용 프로그램에서 IsToggled 속성을 설정 하 Toggled 는 경우 이벤트가 발생 합니다. IsToggledWhen the IsToggled property changes, either through user manipulation or when an application sets the IsToggled property, the Toggled event fires. 이 이벤트에 대 한 이벤트 처리기를 등록 하 여 변경에 응답할 수 있습니다.An event handler for this event can be registered to respond to the change:

<Switch Toggled="OnToggled" />

코드 숨김 파일에 대 한 처리기가 포함 된 Toggled 이벤트:The code-behind file contains the handler for the Toggled event:

void OnToggled(object sender, ToggledEventArgs e)
{
    // Perform an action after examining e.Value
}

이벤트 처리기의 Switch 인수는이이벤트의발생sender 을 담당 합니다.The sender argument in the event handler is the Switch responsible for firing this event. sender 속성을 사용 하 여 Switch 개체에 액세스 하거나 동일한 Toggled 이벤트 처리기를 공유 하 Switch 는 여러 개체를 구분할 수 있습니다.You can use the sender property to access the Switch object, or to distinguish between multiple Switch objects sharing the same Toggled event handler.

이벤트 Toggled 처리기는 코드에서 할당 될 수도 있습니다.The Toggled event handler can also be assigned in code:

Switch switchControl = new Switch {...};
switchControl.Toggled += (sender, e) =>
{
    // Perform an action after examining e.Value
}

스위치 데이터 바인딩Data bind a Switch

데이터 바인딩 및 트리거를 사용 하 여 변경 된 Switch 토글 상태에 응답 하 여 이벤트처리기를제거할수있습니다.ToggledThe Toggled event handler can be eliminated by using data binding and triggers to respond to a Switch changing toggle states.

<Switch x:Name="styleSwitch" />
<Label Text="Lorem ipsum dolor sit amet, elit rutrum, enim hendrerit augue vitae praesent sed non, lorem aenean quis praesent pede.">
    <Label.Triggers>
        <DataTrigger TargetType="Label"
                     Binding="{Binding Source={x:Reference styleSwitch}, Path=IsToggled}"
                     Value="true">
            <Setter Property="FontAttributes"
                    Value="Italic, Bold" />
            <Setter Property="FontSize"
                    Value="Large" />
        </DataTrigger>
    </Label.Triggers>
</Label>

이 예제 Label 에서는의 바인딩 식을 DataTrigger 사용 하 여 Switch 명명 styleSwitch된의 IsToggled 속성을 모니터링 합니다.In this example, the Label uses a binding expression in a DataTrigger to monitor the IsToggled property of the Switch named styleSwitch. 이 속성이 true FontSize 이면의 FontAttributesLabel 속성이 변경 됩니다.When this property becomes true, the FontAttributes and FontSize properties of the Label are changed. 속성이로false 반환되FontSize 면의 및속성이초기상태로다시설정됩니다.Label FontAttributes IsToggledWhen the IsToggled property returns to false, the FontAttributes and FontSize properties of the Label are reset to their initial state.

트리거에 대 한 자세한 내용은 Xamarin.ios 트리거를 참조 하세요.For information about triggers, see Xamarin.Forms Triggers.

스위치 사용 안 함Disable a Switch

응용 프로그램은 설정/해제가 유효한 Switch 작업이 아닌 상태로 전환 될 수 있습니다.An application may enter a state where the Switch being toggled is not a valid operation. 이러한 경우에는 Switch IsEnabled 속성을로 false설정 하 여를 비활성화할 수 있습니다.In such cases, the Switch can be disabled by setting its IsEnabled property to false. 이렇게 하면 사용자가를 Switch조작할 수 없게 됩니다.This will prevent users from being able to manipulate the Switch.