내보내기(0) 인쇄
모두 확장

Freezable.IsFrozen 속성

업데이트: 2007년 11월

개체를 현재 수정할 수 있는지 여부를 나타내는 값을 가져옵니다.

네임스페이스:  System.Windows
어셈블리:  WindowsBase(WindowsBase.dll)

public bool IsFrozen { get; }
/** @property */
public boolean get_IsFrozen()

public function get IsFrozen () : boolean

XAML에서는 이 속성을 설정할 수 없습니다.

속성 값

형식: System.Boolean

개체가 고정되어 수정할 수 없으면 true이고, 그렇지 않으면 false입니다.

IsFrozen 속성이 true로 설정된 개체를 수정하려고 하면 InvalidOperationException이 throw됩니다.

개체 모델의 관점에서 보면 이 속성은 읽기 전용입니다. Freezable 동작에 대한 설명서에서 Freezable의 다른 메서드 동작을 설명할 때 "IsFrozentrue로 설정한다"는 방식으로 서술하는 경우도 있지만, 이 동작은 인스턴스의 메서드에서 추상 클래스 내에 있는 private 변수를 조작할 때 클래스 인스턴스에서 내부적으로 발생합니다. 이 속성의 값을 설정하려면 Freeze를 호출해야 합니다. 이렇게 하면 IsFrozen 속성이 초기 기본값인 false 상태에서 true 상태로 영구적으로 변경됩니다. 이 값을 다시 false로 설정할 수는 없습니다. 대신 원본에서 만든 전체 복사본을 변경할 수는 있습니다. 자세한 내용은 Clone 메서드를 참조하십시오. 이는 의도된 동작이며, Freezable 패턴이 유용한 경우에 적용되는 파생 클래스는 모두 이러한 방식으로 동작해야 합니다.

이 예제에서는 Freezable 개체의 고정 여부를 확인하는 방법을 보여 줍니다. 고정된 Freezable 개체를 수정하려고 하면 InvalidOperationException이 throws됩니다. 이 예외가 throw되지 않도록 하려면 Freezable 개체의 IsFrozen 속성을 사용하여 고정 여부를 확인합니다.

다음 예제에서는 SolidColorBrush를 고정한 다음 IsFrozen 속성으로 테스트하여 고정 여부를 확인합니다.


Button myButton = new Button();
SolidColorBrush myBrush = new SolidColorBrush(Colors.Yellow);

if (myBrush.CanFreeze)
{
    // Makes the brush unmodifiable.
    myBrush.Freeze();
}            

myButton.Background = myBrush;


if (myBrush.IsFrozen) // Evaluates to true.
{
    // If the brush is frozen, create a clone and
    // modify the clone.
    SolidColorBrush myBrushClone = myBrush.Clone();
    myBrushClone.Color = Colors.Red;
    myButton.Background = myBrushClone;
}
else
{
    // If the brush is not frozen,
    // it can be modified directly.
    myBrush.Color = Colors.Red;
}




Freezable 개체에 대한 자세한 내용은 Freezable 개체 개요를 참조하십시오.

Windows Vista

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

.NET Framework

3.5, 3.0에서 지원

커뮤니티 추가 항목

추가
표시:
© 2015 Microsoft