Bagikan melalui


VisualStateGroup Kelas

Definisi

Berisi objek dan VisualTransition objek yang saling eksklusif VisualState yang digunakan untuk berpindah dari satu status ke status lainnya.

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
Warisan
Atribut

Contoh

Contoh berikut membuat sederhana ControlTemplate untuk yang Button berisi Grid. Ini juga berisi bernama VisualStateGroupCommonStates, yang mendefinisikan status MouseOver dan Normal . VisualStateGroup juga memiliki VisualTransition yang menentukan bahwa dibutuhkan satu setengah detik untuk Grid berubah dari hijau ke merah ketika pengguna memindahkan penunjuk mouse di Buttonatas .

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

Keterangan

Masing-masing VisualStateGroup berisi kumpulan VisualState objek. VisualState berisi kumpulan Storyboard objek yang menentukan bagaimana tampilan kontrol berubah saat kontrol berada dalam status tertentu. Misalnya, mungkin memiliki penampilan yang Button sedikit berbeda ketika ditekan daripada ketika tidak ditekan. Dua menyatakan bahwa Button definisi sesuai dengan kapan ditekan ("Pressed") dan ketika tidak ("Normal").

Anda menambahkan VisualState ke kontrol dengan mengatur VisualStateManager.VisualStateGroups properti terlampir pada kontrol. Anda menempatkan status yang saling eksklusif satu sama lain dalam hal yang sama VisualStateGroup. Misalnya, memiliki CheckBox dua VisualStateGroup objek. Satu berisi status, Normal, MouseOver, Pressed, dan Disabled. Yang lain berisi status, Checked, UnChecked, dan Indeterminate. CheckBox dapat berada di negara bagian MouseOver dan UnChecked pada saat yang sama, tetapi tidak dapat berada di MouseOver negara bagian dan Pressed pada saat yang sama.

Meskipun Anda dapat menambahkan VisualState objek ke elemen apa pun, objek tersebut adalah cara yang sangat berguna untuk memungkinkan orang lain menentukan ulang perilaku visual dari Control. Jika Anda membuat kontrol kustom yang menggunakan ControlTemplate, Anda dapat menentukan status mana yang dapat digunakan kontrol dengan menambahkan TemplateVisualStateAttribute pada definisi kelasnya. Kemudian siapa pun yang membuat baru ControlTemplate untuk kontrol Anda dapat menambahkan VisualState objek ke templat. memungkinkan TemplateVisualStateAttribute alat desainer, seperti Visual Studio dan Blend for Visual Studio, untuk mengekspos status kontrol. Status dengan yang sama TemplateVisualStateAttribute.GroupName termasuk dalam yang sama VisualStateGroup.

Untuk informasi selengkapnya tentang cara menggunakan VisualStateGroup objek dalam ControlTemplate, lihat Menyesuaikan Tampilan Kontrol yang Ada dengan Membuat ControlTemplate. Untuk informasi selengkapnya tentang cara membuat kontrol yang menggunakan VisualStateManager, lihat Membuat Kontrol yang Memiliki Tampilan yang Dapat Disesuaikan.

Properti Transitions berisi VisualTransition objek yang diterapkan saat transisi kontrol antara status yang ditentukan dalam VisualStateGroup.

Konstruktor

VisualStateGroup()

Menginisialisasi instans baru kelas VisualStateGroup.

Properti

CurrentState

VisualState Mendapatkan yang saat ini diterapkan ke kontrol.

DependencyObjectType

Mendapatkan yang membungkus jenis CLR dari instans DependencyObjectType ini.

(Diperoleh dari DependencyObject)
Dispatcher

Dispatcher Mendapatkan ini DispatcherObject dikaitkan dengan.

(Diperoleh dari DispatcherObject)
IsSealed

Mendapatkan nilai yang menunjukkan apakah instans ini saat ini disegel (baca-saja).

(Diperoleh dari DependencyObject)
Name

Mendapatkan atau mengatur nama VisualStateGroup.

States

Mendapatkan koleksi objek yang saling eksklusif VisualState .

Transitions

Mendapatkan koleksi VisualTransition objek.

Metode

CheckAccess()

Menentukan apakah utas panggilan memiliki akses ke ini DispatcherObject.

(Diperoleh dari DispatcherObject)
ClearValue(DependencyProperty)

Menghapus nilai lokal properti. Properti yang akan dibersihkan ditentukan oleh DependencyProperty pengidentifikasi.

(Diperoleh dari DependencyObject)
ClearValue(DependencyPropertyKey)

Menghapus nilai lokal properti baca-saja. Properti yang akan dibersihkan ditentukan oleh DependencyPropertyKey.

(Diperoleh dari DependencyObject)
CoerceValue(DependencyProperty)

Memaksakan nilai properti dependensi yang ditentukan. Ini dicapai dengan memanggil fungsi apa pun CoerceValueCallback yang ditentukan dalam metadata properti untuk properti dependensi seperti yang ada pada panggilan DependencyObject.

(Diperoleh dari DependencyObject)
Equals(Object)

Menentukan apakah yang disediakan DependencyObject setara dengan saat ini DependencyObject.

(Diperoleh dari DependencyObject)
GetHashCode()

Mendapatkan kode hash untuk ini DependencyObject.

(Diperoleh dari DependencyObject)
GetLocalValueEnumerator()

Membuat enumerator khusus untuk menentukan properti dependensi mana yang memiliki nilai yang ditetapkan secara lokal pada ini DependencyObject.

(Diperoleh dari DependencyObject)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
GetValue(DependencyProperty)

Mengembalikan nilai efektif properti dependensi saat ini pada instans ini dari DependencyObject.

(Diperoleh dari DependencyObject)
InvalidateProperty(DependencyProperty)

Mengevaluasi kembali nilai efektif untuk properti dependensi yang ditentukan.

(Diperoleh dari DependencyObject)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Dipanggil setiap kali nilai efektif dari properti dependensi apa pun pada ini DependencyObject telah diperbarui. Properti dependensi tertentu yang berubah dilaporkan dalam data peristiwa.

(Diperoleh dari DependencyObject)
ReadLocalValue(DependencyProperty)

Mengembalikan nilai lokal properti dependensi, jika ada.

(Diperoleh dari DependencyObject)
SetCurrentValue(DependencyProperty, Object)

Mengatur nilai properti dependensi tanpa mengubah sumber nilainya.

(Diperoleh dari DependencyObject)
SetValue(DependencyProperty, Object)

Mengatur nilai lokal properti dependensi, yang ditentukan oleh pengidentifikasi properti dependensinya.

(Diperoleh dari DependencyObject)
SetValue(DependencyPropertyKey, Object)

Mengatur nilai lokal properti dependensi baca-saja, yang ditentukan oleh DependencyPropertyKey pengidentifikasi properti dependensi.

(Diperoleh dari DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Mengembalikan nilai yang menunjukkan apakah proses serialisasi harus menserialisasikan nilai untuk properti dependensi yang disediakan.

(Diperoleh dari DependencyObject)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
VerifyAccess()

Memberlakukan bahwa utas panggilan memiliki akses ke ini DispatcherObject.

(Diperoleh dari DispatcherObject)

Acara

CurrentStateChanged

Terjadi setelah kontrol beralih ke status yang berbeda.

CurrentStateChanging

Terjadi ketika kontrol mulai beralih ke status yang berbeda.

Berlaku untuk