VisualStateGroup Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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. |