Aracılığıyla paylaş


VisualStateManager Sınıf

Tanım

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, CommonStatesVisualStateGroupiçindeki MouseOver ve NormalVisualState 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 State2durumları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 State1iç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)

Şunlara uygulanır