Udostępnij za pośrednictwem


VisualStateGroup Klasa

Definicja

Zawiera wzajemnie wykluczające VisualState się obiekty i VisualTransition obiekty używane do przenoszenia z jednego stanu do innego.

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
Dziedziczenie
Atrybuty

Przykłady

Poniższy przykład umożliwia utworzenie prostego ControlTemplate elementu zawierającego Button element Grid. Zawiera VisualStateGroup również nazwę CommonStates, która definiuje MouseOver stany i Normal . Element VisualStateGroup ma również wartość określającą VisualTransition , że zmiana z kolorem zielonym na czerwony trwa jedną połowę sekundy Grid , gdy użytkownik przesuwa wskaźnik myszy nad 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>

Uwagi

Każda z nich VisualStateGroup zawiera kolekcję VisualState obiektów. Element VisualState zawiera kolekcję Storyboard obiektów, które określają, jak zmienia się wygląd kontrolki, gdy kontrolka jest w określonym stanie. Na przykład element Button może mieć nieco inny wygląd, gdy jest on naciskany niż wtedy, gdy nie jest naciskany. Dwa stany, które Button definiują, odpowiadają, gdy jest on naciśnięty ("Pressed") i gdy nie jest ("Normal").

VisualState Dodasz do kontrolki, ustawiając dołączoną VisualStateManager.VisualStateGroups właściwość w kontrolce. Umieszczasz stany, które wzajemnie się wykluczają w tym samym VisualStateGroupobiekcie . Na przykład obiekt CheckBox ma dwa VisualStateGroup obiekty. Jeden zawiera stany, Normal, MouseOver, Pressedi Disabled. Druga zawiera stany, Checked, UnCheckedi Indeterminate. Może CheckBox być w stanach MouseOver i UnChecked jednocześnie, ale nie może być w MouseOver stanach i Pressed w tym samym czasie.

Chociaż można dodawać VisualState obiekty do dowolnego elementu, są one szczególnie przydatnym sposobem na ponowne zdefiniowanie zachowania wizualnego elementu Control. Jeśli tworzysz niestandardową kontrolkę używającą klasy ControlTemplate, możesz określić stany, w których może znajdować się kontrolka, dodając definicję TemplateVisualStateAttribute klasy. Następnie każda osoba tworząca nową ControlTemplate kontrolkę może dodawać VisualState obiekty do szablonu. Dzięki TemplateVisualStateAttribute temu narzędzia projektanta, takie jak Visual Studio i Blend for Visual Studio, umożliwiają uwidocznienie stanów kontrolki. Stany o tej samej TemplateVisualStateAttribute.GroupName własności należą do tego samego VisualStateGroup.

Aby uzyskać więcej informacji na temat używania VisualStateGroup obiektów w elemecie ControlTemplate, zobacz Dostosowywanie wyglądu istniejącej kontrolki przez tworzenie kontrolkiTemplate. Aby uzyskać więcej informacji na temat tworzenia kontrolek korzystających z elementu VisualStateManager, zobacz Tworzenie kontrolki, która ma dostosowywalny wygląd.

Właściwość Transitions zawiera VisualTransition obiekty, które są stosowane w przypadku przejścia kontrolki między stanami zdefiniowanymi w obiekcie VisualStateGroup.

Konstruktory

VisualStateGroup()

Inicjuje nowe wystąpienie klasy VisualStateGroup.

Właściwości

CurrentState

VisualState Pobiera element, który jest obecnie stosowany do kontrolki.

DependencyObjectType

DependencyObjectType Pobiera opakowujący typ clR tego wystąpienia.

(Odziedziczone po DependencyObject)
Dispatcher

Dispatcher Pobiera tę DispatcherObject wartość skojarzona z.

(Odziedziczone po DispatcherObject)
IsSealed

Pobiera wartość wskazującą, czy to wystąpienie jest obecnie zapieczętowane (tylko do odczytu).

(Odziedziczone po DependencyObject)
Name

Pobiera lub ustawia nazwę elementu VisualStateGroup.

States

Pobiera kolekcję wzajemnie wykluczających VisualState się obiektów.

Transitions

Pobiera kolekcję VisualTransition obiektów.

Metody

CheckAccess()

Określa, czy wątek wywołujący ma dostęp do tego DispatcherObjectelementu .

(Odziedziczone po DispatcherObject)
ClearValue(DependencyProperty)

Czyści wartość lokalną właściwości. Właściwość do wyczyszczenia jest określana przez DependencyProperty identyfikator.

(Odziedziczone po DependencyObject)
ClearValue(DependencyPropertyKey)

Czyści wartość lokalną właściwości tylko do odczytu. Właściwość do wyczyszczenia jest określana przez DependencyPropertyKeyelement .

(Odziedziczone po DependencyObject)
CoerceValue(DependencyProperty)

Coerce wartość określonej właściwości zależności. Jest to realizowane przez wywołanie dowolnej CoerceValueCallback funkcji określonej w metadanych właściwości dla właściwości zależności, ponieważ istnieje w wywołaniu DependencyObject.

(Odziedziczone po DependencyObject)
Equals(Object)

Określa, czy podany DependencyObject element jest odpowiednikiem bieżącego DependencyObjectelementu .

(Odziedziczone po DependencyObject)
GetHashCode()

Pobiera kod skrótu dla tego pliku DependencyObject.

(Odziedziczone po DependencyObject)
GetLocalValueEnumerator()

Tworzy wyspecjalizowany moduł wyliczający do określania, które właściwości zależności mają lokalnie ustawione wartości w tym DependencyObjectelemecie .

(Odziedziczone po DependencyObject)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
GetValue(DependencyProperty)

Zwraca bieżącą obowiązującą wartość właściwości zależności dla tego wystąpienia obiektu DependencyObject.

(Odziedziczone po DependencyObject)
InvalidateProperty(DependencyProperty)

Ponownie oblicza efektywną wartość dla określonej właściwości zależności.

(Odziedziczone po DependencyObject)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Wywoływane za każdym razem, gdy obowiązująca wartość dowolnej właściwości zależności została DependencyObject zaktualizowana. Określona właściwość zależności, która uległa zmianie, jest zgłaszana w danych zdarzenia.

(Odziedziczone po DependencyObject)
ReadLocalValue(DependencyProperty)

Zwraca wartość lokalną właściwości zależności, jeśli istnieje.

(Odziedziczone po DependencyObject)
SetCurrentValue(DependencyProperty, Object)

Ustawia wartość właściwości zależności bez zmiany źródła wartości.

(Odziedziczone po DependencyObject)
SetValue(DependencyProperty, Object)

Ustawia wartość lokalną właściwości zależności określonej przez jego identyfikator właściwości zależności.

(Odziedziczone po DependencyObject)
SetValue(DependencyPropertyKey, Object)

Ustawia wartość lokalną właściwości zależności tylko do odczytu określona przez DependencyPropertyKey identyfikator właściwości zależności.

(Odziedziczone po DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Zwraca wartość wskazującą, czy procesy serializacji powinny serializować wartość podanej właściwości zależności.

(Odziedziczone po DependencyObject)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
VerifyAccess()

Wymusza, że wątek wywołujący ma dostęp do tego DispatcherObjectelementu .

(Odziedziczone po DispatcherObject)

Zdarzenia

CurrentStateChanged

Występuje po przejściu kontrolki do innego stanu.

CurrentStateChanging

Występuje, gdy kontrolka zaczyna przechodzić do innego stanu.

Dotyczy