VisualStateGroup 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
함께 사용할 수 없는 VisualState 개체와 상태를 전환하는 데 사용되는 VisualTransition 개체를 포함합니다.
public ref class VisualStateGroup : System::Windows::DependencyObject
[System.Windows.Markup.ContentProperty("States")]
[System.Windows.Markup.RuntimeNameProperty("Name")]
public class VisualStateGroup : System.Windows.DependencyObject
[<System.Windows.Markup.ContentProperty("States")>]
[<System.Windows.Markup.RuntimeNameProperty("Name")>]
type VisualStateGroup = class
inherit DependencyObject
Public Class VisualStateGroup
Inherits DependencyObject
- 상속
- 특성
예제
다음 예제에서는 간단한 ControlTemplate 에 대 한는 Button 하나를 포함 하는 Grid합니다. 도 포함 되어 있습니다를 VisualStateGroup 라는 CommonStates
를 정의 하는 합니다 MouseOver
및 Normal
상태입니다.
VisualStateGroup 역시를 VisualTransition 에 대 한 0.5 초가 걸린다는 점을 지정 하는 합니다 Grid 위로 마우스 포인터를 이동할 때 녹색에서 빨간색으로 변경 하려면를 Button입니다.
<ControlTemplate TargetType="Button">
<Grid >
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualStateGroup.Transitions>
<!--Take one half second to trasition to the MouseOver state.-->
<VisualTransition To="MouseOver"
GeneratedDuration="0:0:0.5"/>
</VisualStateGroup.Transitions>
<VisualState x:Name="Normal" />
<!--Change the SolidColorBrush, ButtonBrush, to red when the
mouse is over the button.-->
<VisualState x:Name="MouseOver">
<Storyboard>
<ColorAnimation Storyboard.TargetName="ButtonBrush"
Storyboard.TargetProperty="Color" To="Red" />
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid.Background>
<SolidColorBrush x:Name="ButtonBrush" Color="Green"/>
</Grid.Background>
</Grid>
</ControlTemplate>
설명
각 VisualStateGroup 의 컬렉션을 포함 VisualState 개체입니다. A VisualState 의 컬렉션을 포함 Storyboard 컨트롤이 특정 상태에 있을 때 컨트롤의 모양을 변경 하는 방법을 지정 하는 개체입니다. 예를 들어, 한 Button 를 누를 때 보다 누를 때 이와 약간 다르게 표시 해야 할 수 있습니다. 두 개의 상태를 Button 정의 누를 때 해당 하 ("Pressed"
)이 아닐 때 및 ("Normal"
).
추가한 VisualState 설정 하 여 컨트롤에는 VisualStateManager.VisualStateGroups
컨트롤에 연결 합니다. 동일한 서로 함께 사용할 수 없는 상태를 추가할 VisualStateGroup합니다. 예를 들어 합니다 CheckBox 에 두 개의 VisualStateGroup 개체입니다. 상태를 포함 하나 Normal
, MouseOver
를 Pressed
, 및 Disabled
합니다. 다른 상태를 포함 Checked
하십시오 UnChecked
, 및 Indeterminate
합니다.
CheckBox 상태일에서 수 있습니다 MouseOver
및 UnChecked
이와 동시에 있을 수 없습니다 있지만 MouseOver
및 Pressed
동시 상태입니다.
추가할 수는 있지만 VisualState 다른 사용자의 시각적 동작을 재정의할 수 있도록 하는 특히 유용한 방법은 요소에 개체를 Control합니다. 사용 하는 사용자 지정 컨트롤을 만드는 경우는 ControlTemplate를 추가 하 여 컨트롤에 적용할 수는 상태를 지정할 수 있습니다는 TemplateVisualStateAttribute 해당 클래스 정의에서. 그런 다음 모든 사용자가 새 ControlTemplate 컨트롤을 추가할 수에 대 한 VisualState 템플릿에 개체입니다. 를 TemplateVisualStateAttribute 사용하면 Visual Studio 및 Blend for Visual Studio와 같은 디자이너 도구가 컨트롤의 상태를 노출할 수 있습니다. 같은 상태 TemplateVisualStateAttribute.GroupName 동일한 속해 VisualStateGroup합니다.
사용 하는 방법에 대 한 자세한 VisualStateGroup 개체를 ControlTemplate를 참조 하십시오 ControlTemplate을 만들어 기존 컨트롤의 모양 사용자 지정합니다. 만드는 방법에 대 한 자세한 내용은 사용 하는 컨트롤에 대해를 VisualStateManager를 참조 하세요 모양을 사용자 지정할 수는 제어 된 만들기합니다.
합니다 Transitions 속성을 포함 VisualTransition 제어 전환 하는 것도 상태 사이 때 적용 되는 개체에 정의 된는 VisualStateGroup합니다.
생성자
VisualStateGroup() |
VisualStateGroup 클래스의 새 인스턴스를 초기화합니다. |
속성
CurrentState |
컨트롤에 현재 적용되는 VisualState를 가져옵니다. |
DependencyObjectType |
이 인스턴스의 DependencyObjectType CLR 형식을 래핑하는 을 가져옵니다. (다음에서 상속됨 DependencyObject) |
Dispatcher |
이 Dispatcher와 연결된 DispatcherObject를 가져옵니다. (다음에서 상속됨 DispatcherObject) |
IsSealed |
이 인스턴스가 현재 봉인되어 있는지(읽기 전용인지) 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 DependencyObject) |
Name |
VisualStateGroup의 이름을 가져오거나 설정합니다. |
States |
함께 사용할 수 없는 VisualState 개체의 컬렉션을 가져옵니다. |
Transitions |
VisualTransition 개체의 컬렉션을 가져옵니다. |
메서드
이벤트
CurrentStateChanged |
컨트롤이 다른 상태로 전환된 후에 발생합니다. |
CurrentStateChanging |
컨트롤이 다른 상태로 전환되기 시작할 때 발생합니다. |
적용 대상
.NET