VisualStateManager Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Durumları ve denetimler için durumlar arasında geçiş mantığını yönetir.
public ref class VisualStateManager : System::Windows::DependencyObject
public class VisualStateManager : System.Windows.DependencyObject
type VisualStateManager = class
inherit DependencyObject
Public Class VisualStateManager
Inherits DependencyObject
- Devralma
Örnekler
Aşağıdaki örnek bir Rectangle oluşturur ve ekli VisualStateManager.VisualStatesGroups
özelliğine CommonStates
adlı bir VisualStateGroup ekler. Örnek, CommonStates
VisualStateGroupiçindeki MouseOver
ve Normal
VisualState nesnelerini tanımlar. Kullanıcı fare işaretçisini Rectangleüzerinde hareket ettiğinde, yarım saniye boyunca kırmızıdan yeşile dönüşür. Kullanıcı fareyi dikdörtgenden uzaklaştırdığında, Grid hemen kırmızıya döner.
Normal
durumunun bir Storyboardtanımlamadığını unutmayın. bir Storyboard gerekli değildir çünkü RectangleMouseOver
durumundan Normal
durumuna geçtiğinde, MouseOver
için Storyboard durdurulur ve SolidColorBrush için Color özelliği kırmızıya döner.
<Rectangle Name="rect"
Width="100" Height="100"
MouseEnter="rect_MouseEvent"
MouseLeave="rect_MouseEvent">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup Name="MouseStates">
<VisualState Name="MouseEnter">
<Storyboard>
<ColorAnimation To="Green"
Storyboard.TargetName="rectBrush"
Storyboard.TargetProperty="Color"/>
</Storyboard>
</VisualState>
<VisualState Name="MouseLeave" />
<VisualStateGroup.Transitions>
<VisualTransition To="MouseLeave" GeneratedDuration="00:00:00"/>
<VisualTransition To="MouseEnter" GeneratedDuration="00:00:00.5">
<VisualTransition.GeneratedEasingFunction>
<ExponentialEase EasingMode="EaseOut" Exponent="10"/>
</VisualTransition.GeneratedEasingFunction>
</VisualTransition>
</VisualStateGroup.Transitions>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Rectangle.Fill>
<SolidColorBrush x:Name="rectBrush" Color="Red"/>
</Rectangle.Fill>
</Rectangle>
Aşağıdaki örnek, önceki örnekte tanımlanan olay işleyicisini gösterir ve durumlar arasında geçiş yapmak için GoToElementState yöntemini çağırır. Önceki örnekteki dikdörtgen bir ControlTemplateparçasıysa, örneğin GoToState yöntemini çağırması gerekir.
private void rect_MouseEvent(object sender, MouseEventArgs e)
{
if (rect.IsMouseOver)
{
VisualStateManager.GoToElementState(rect, "MouseEnter", true);
}
else
{
VisualStateManager.GoToElementState(rect, "MouseLeave", true);
}
}
Private Sub rect_MouseEvent(ByVal sender As Object, ByVal e As MouseEventArgs)
If rect.IsMouseOver Then
VisualStateManager.GoToElementState(rect, "MouseEnter", True)
Else
VisualStateManager.GoToElementState(rect, "MouseLeave", True)
End If
End Sub
Açıklamalar
VisualStateManager bir denetimin durumlarını, belirli bir durumdayken denetimin görünümünü ve denetim durumlarını değiştirdiğinde belirtmenizi sağlar. Örneğin, bir Button basıldığında, basılmadığından biraz farklı bir görünüme sahip olabilir.
Button tanımladığı iki durum, basıldığında ("Pressed"
) ve değilken ("Normal"
) karşılık gelir. Bir durumdayken denetimin görünümü, VisualStatetarafından tanımlanır.
VisualState, denetim söz konusu durumdayken denetimin görünümünün nasıl değiştiğini belirten bir Storyboard nesnesi koleksiyonu içerir. Denetimde ekli VisualStateManager.VisualStateGroups
özelliğini ayarlayarak denetime görsel durumlar eklersiniz. Her VisualStateGroup, birbirini dışlayan bir VisualState nesnesi koleksiyonu içerir. Diğer bir ifadeyle, denetim her VisualStateGroupher zaman tam olarak bir durumundadır.
VisualStateManager, bir denetimin belirli bir duruma ne zaman gireceğini belirtmenizi de sağlar. Durum değiştirmek için çağırmanız gereken yöntem senaryonuza bağlıdır.
ControlTemplate
VisualStateManager kullanan bir denetim oluşturursanız, GoToState yöntemini çağırın.
VisualStateManagerkullanan denetimler oluşturma hakkında daha fazla bilgi için bkz. Özelleştirilebilir Görünüme Sahip Denetim Oluşturma.
VisualStateManager bir ControlTemplate dışında kullanıyorsanız (örneğin, bir UserControl veya tek bir öğede VisualStateManager kullanıyorsanız), GoToElementState yöntemini çağırın. Her iki durumda da, VisualStateManager ilgili durumla ilişkili görsel taslakları uygun şekilde başlatmak ve durdurmak için gereken mantığı gerçekleştirir. Örneğin, bir denetimin her biri kendisiyle ilişkilendirilmiş görsel taslak içeren State1
ve State2
durumlarını tanımladığını varsayalım. Denetim State1
ise ve GoToState veya GoToElementState'a State2
geçirirseniz, VisualStateManager görsel taslak State2
başlatılır ve görsel taslak State1
içinde durdurulur.
Windows Presentation Foundation(WPF) ile birlikte gelen denetimler, görsel durumlarını değiştirmek için VisualStateManager kullanır. WPF ile birlikte gelen bir denetim için ControlTemplate oluşturduğunuzda, denetimin görünümünü belirli bir durumda belirtmek için denetimin ControlTemplateVisualState nesneleri ekleyebilirsiniz. WPF ile birlikte gelen denetimlerin görsel durumlarının adlarını bulmak için bkz. Denetim Stilleri ve Şablonları. Denetimin mantığı durumlar arasında geçişi işler, bu nedenle yeni ControlTemplateVisualState nesneleri tanımlamak dışında bir şey yapmanız gerekmez. Var olan denetimler için denetim şablonları oluşturma hakkında daha fazla bilgi için bkz. ControlTemplateOluşturarak Varolan Denetimin Görünümünü Özelleştirme.
Durumlar arasında geçiş yapmak için kendi mantığınızı uygulamak istiyorsanız, VisualStateManager'den devralmanız, GoToStateCore yöntemini geçersiz kılmanız ve özel mantığı kullanan denetimde ekli VisualStateManager.CustomVisualStateManager özelliğini ayarlamanız gerekir.
Oluşturucular
VisualStateManager() |
VisualStateManager sınıfının yeni bir örneğini başlatır. |
Alanlar
CustomVisualStateManagerProperty |
CustomVisualStateManager bağımlılık özelliğini tanımlar. |
VisualStateGroupsProperty |
VisualStateGroups bağımlılık özelliğini tanımlar. |
Özellikler
DependencyObjectType |
Bu örneğin CLR türünü sarmalayan DependencyObjectType alır. (Devralındığı yer: DependencyObject) |
Dispatcher |
Bu DispatcherObject ilişkilendirilen Dispatcher alır. (Devralındığı yer: DispatcherObject) |
IsSealed |
Bu örneğin şu anda korumalı (salt okunur) olup olmadığını gösteren bir değer alır. (Devralındığı yer: DependencyObject) |
İliştirilmiş Özellikler
CustomVisualStateManager |
Denetimin durumları arasında geçiş VisualStateManager nesnesini alır veya ayarlar. |
VisualStateGroups |
VisualStateGroup nesne koleksiyonunu alır veya ayarlar. |
Yöntemler
CheckAccess() |
Çağıran iş parçacığının bu DispatcherObjecterişimi olup olmadığını belirler. (Devralındığı yer: DispatcherObject) |
ClearValue(DependencyProperty) |
Bir özelliğin yerel değerini temizler. Temizlenecek özellik bir DependencyProperty tanımlayıcısı tarafından belirtilir. (Devralındığı yer: DependencyObject) |
ClearValue(DependencyPropertyKey) |
Salt okunur özelliğin yerel değerini temizler. Temizlenecek özellik bir DependencyPropertyKeytarafından belirtilir. (Devralındığı yer: DependencyObject) |
CoerceValue(DependencyProperty) |
Belirtilen bağımlılık özelliğinin değerini zorlama. Bu, bağımlılık özelliği için özellik meta verilerinde belirtilen herhangi bir CoerceValueCallback işlevi çağrılarak DependencyObject. (Devralındığı yer: DependencyObject) |
Equals(Object) |
Sağlanan bir DependencyObject geçerli DependencyObjecteşdeğer olup olmadığını belirler. (Devralındığı yer: DependencyObject) |
GetCustomVisualStateManager(FrameworkElement) |
ekli CustomVisualStateManager özelliğini alır. |
GetHashCode() |
Bu DependencyObjectiçin bir karma kodu alır. (Devralındığı yer: DependencyObject) |
GetLocalValueEnumerator() |
Bu DependencyObjecthangi bağımlılık özelliklerinin yerel olarak ayarlandığını belirlemek için özel bir numaralandırıcı oluşturur. (Devralındığı yer: DependencyObject) |
GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
GetValue(DependencyProperty) |
bir DependencyObjectbu örneğindeki bağımlılık özelliğinin geçerli etkin değerini döndürür. (Devralındığı yer: DependencyObject) |
GetVisualStateGroups(FrameworkElement) |
ekli VisualStateGroups özelliğini alır. |
GoToElementState(FrameworkElement, String, Boolean) |
öğesini iki durum arasında geçişler. Bir denetim tarafından tanımlandığı yerine bir uygulama tarafından tanımlanan durumları geçiş yapmak için bu yöntemi kullanın. |
GoToState(FrameworkElement, String, Boolean) |
Denetimi iki durum arasında geçişler. ControlTemplateolan denetim durumlarını geçiş yapmak için bu yöntemi kullanın. |
GoToStateCore(FrameworkElement, FrameworkElement, String, VisualStateGroup, VisualState, Boolean) |
Durumlar arasında bir denetime geçişler. |
InvalidateProperty(DependencyProperty) |
Belirtilen bağımlılık özelliği için geçerli değeri yeniden değerlendirir. (Devralındığı yer: DependencyObject) |
MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Bu DependencyObject herhangi bir bağımlılık özelliğinin geçerli değeri güncelleştirildiğinde çağrılır. Değiştirilen belirli bağımlılık özelliği olay verilerinde bildirilir. (Devralındığı yer: DependencyObject) |
RaiseCurrentStateChanged(VisualStateGroup, VisualState, VisualState, FrameworkElement, FrameworkElement) |
Belirtilen VisualStateGroup nesnesinde CurrentStateChanging olayını başlatır. |
RaiseCurrentStateChanging(VisualStateGroup, VisualState, VisualState, FrameworkElement, FrameworkElement) |
Belirtilen VisualStateGroup nesnesinde CurrentStateChanging olayını başlatır. |
ReadLocalValue(DependencyProperty) |
Varsa, bağımlılık özelliğinin yerel değerini döndürür. (Devralındığı yer: DependencyObject) |
SetCurrentValue(DependencyProperty, Object) |
Bir bağımlılık özelliğinin değerini, değer kaynağını değiştirmeden ayarlar. (Devralındığı yer: DependencyObject) |
SetCustomVisualStateManager(FrameworkElement, VisualStateManager) |
ekli CustomVisualStateManager özelliğini ayarlar. |
SetValue(DependencyProperty, Object) |
Bağımlılık özelliği tanımlayıcısı tarafından belirtilen bir bağımlılık özelliğinin yerel değerini ayarlar. (Devralındığı yer: DependencyObject) |
SetValue(DependencyPropertyKey, Object) |
Bağımlılık özelliğinin DependencyPropertyKey tanımlayıcısı tarafından belirtilen salt okunur bağımlılık özelliğinin yerel değerini ayarlar. (Devralındığı yer: DependencyObject) |
ShouldSerializeProperty(DependencyProperty) |
Serileştirme işlemlerinin sağlanan bağımlılık özelliği için değeri serileştirmesi gerekip gerekmediğini gösteren bir değer döndürür. (Devralındığı yer: DependencyObject) |
ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
VerifyAccess() |
Çağıran iş parçacığının bu DispatcherObjecterişmesini zorlar. (Devralındığı yer: DispatcherObject) |