VisualStateManager.VisualStateGroups Toegevoegde eigenschap

Definitie

Hiermee haalt u een verzameling VisualStateGroup objecten op of stelt u deze in.

see GetVisualStateGroups
see GetVisualStateGroups
see GetVisualStateGroups

Voorbeelden

In het volgende voorbeeld wordt een eenvoudige ControlTemplate gemaakt voor een Button die een Gridbevat. Het bevat ook een VisualStateGroup benoemde naam CommonStates, waarmee de MouseOver en Normal statussen worden gedefinieerd. De VisualStateGroup heeft ook een VisualTransition die aangeeft dat het een halve seconde duurt voordat de Grid gebruiker van groen naar rood verandert wanneer de gebruiker de muisaanwijzer over de 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>

Opmerkingen

Elk VisualStateGroup bevat een verzameling VisualState objecten. A VisualState bevat een verzameling Storyboard objecten die aangeven hoe het uiterlijk van het besturingselement verandert wanneer het besturingselement een bepaalde status heeft. Een kan bijvoorbeeld Button een iets ander uiterlijk hebben wanneer deze wordt ingedrukt dan wanneer deze niet wordt ingedrukt. Twee staten die de Button definieert komen overeen met wanneer het wordt ingedrukt ("Pressed") en wanneer het niet ("Normal").

U voegt een besturingselement toe VisualState door de VisualStateGroups gekoppelde eigenschap op het besturingselement in te stellen. Je plaatst staten die elkaar wederzijds uitsluiten in hetzelfde VisualStateGroup. Het heeft bijvoorbeeld CheckBox twee VisualStateGroup objecten. Een bevat de statussen, Normal, MouseOver, en PressedDisabled. De andere bevat de statussen, Checked, en UnCheckedIndeterminate. De CheckBox status kan zich in statussen MouseOver en UnChecked tegelijkertijd bevinden, maar kan niet tegelijkertijd in de MouseOver en Pressed statussen zijn.

Hoewel u objecten aan elk element kunt toevoegen VisualState , zijn ze een bijzonder nuttige manier om anderen in staat te stellen het visuele gedrag van een Controlelement opnieuw te definiƫren. Als u een aangepast besturingselement maakt dat gebruikmaakt van een ControlTemplatebesturingselement, kunt u opgeven in welke statussen dat besturingselement kan zijn door een TemplateVisualStateAttribute toe te voegen aan de klassedefinitie. Vervolgens kan iedereen die een nieuw ControlTemplate voor uw besturingselement maakt objecten toevoegen VisualState aan de sjabloon. Staten met hetzelfde System.Windows.TemplateVisualStateAttribute.GroupName behoort tot hetzelfde VisualStateGroup.

Zie VisualStateGroup meer informatie over het gebruik ControlTemplate van objecten in een besturingselement. Zie Een besturingselement maken VisualStateManager voor meer informatie over het maken van besturingselementen die gebruikmaken van de besturingselementen.

Van toepassing op