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 özelliğe bir VisualStateGroup adlandırılmış CommonStatesVisualStateManager.VisualStatesGroups ekler. Örnek içindeki MouseOver ve NormalVisualState nesnelerini CommonStatesVisualStateGrouptanımlar. Kullanıcı fare işaretçisini üzerinde Rectanglehareket 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. Durumunun Normal bir Storyboardtanımlamadığını unutmayın. durumundan StoryboardRectangle duruma geçişler MouseOver yapıldığında için MouseOverStoryboard durdurulduğundan Normal ve Color özelliği kırmızıya döndürdüğündenSolidColorBrush, bir gerekli değildir.

<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 yöntemini çağırır GoToElementState . Önceki örnekteki dikdörtgen bir ControlTemplateöğesinin parçasıysa, örneğin yöntemini çağırması GoToState 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 bir denetimin durumlarını değiştirmesini belirtmenizi sağlar. Örneğin, basıldığında Button , basılmadığından biraz farklı bir görünüme sahip olabilir. öğesini tanımlayan Button iki durum, basıldığında ("Pressed") ve ( değilken"Normal") karşılık gelir. Bir durumdayken denetimin görünümü tarafından VisualStatetanımlanır. , VisualState denetim bu durumdayken denetimin görünümünün nasıl değiştiğini belirten bir nesne koleksiyonu Storyboard içerir. Denetimde ekli özelliği ayarlayarak denetime VisualStateManager.VisualStateGroups görsel durumlar eklersiniz. Her VisualStateGroup biri birbirini dışlayan bir nesne koleksiyonu VisualState içerir. Diğer bir ifadeyle, denetim her VisualStateGroupbir içinde her zaman tam olarak bir durumundadır.

, VisualStateManager bir denetimin belirli bir duruma ne zaman gireceğini belirtmenizi de sağlar. Durumları değiştirmek için çağırmanız gereken yöntem senaryonuza bağlıdır. içinde ControlTemplatekullanan VisualStateManager bir denetim oluşturursanız yöntemini çağırınGoToState. kullanan VisualStateManagerdenetimlerin nasıl oluşturulacağı hakkında daha fazla bilgi için bkz. Özelleştirilebilir Bir Görünüme Sahip Denetim Oluşturma. Bir öğesinin dışını VisualStateManagerControlTemplate kullanıyorsanız (örneğin, bir UserControl içinde veya tek bir öğede kullanıyorsanızVisualStateManager), yöntemini çağırınGoToElementState. 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 ve State2durumlarını State1 tanımladığını varsayalım. Denetim içindeyse State1 ve veya GoToElementStateöğesine geçerseniz State2GoToState, VisualStateManager film şeridini içinde State2 başlatır ve içindeki State1film şeridini durdurur.

Windows Presentation Foundation (WPF) ile birlikte gelen denetimler, görsel durumları değiştirmek için öğesini VisualStateManager kullanır. WPF ile birlikte gelen bir denetim için bir ControlTemplate oluşturduğunuzda, denetimin ControlTemplate görünümünü belirli bir durumda belirtmek için denetime nesneler ekleyebilirsinizVisualState. 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 ControlTemplateiçindeki nesneleri tanımlamak VisualState dışında bir şey yapmanız gerekmez. Mevcut denetimler için denetim şablonları oluşturma hakkında daha fazla bilgi için bkz. ControlTemplate Oluş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, 'den VisualStateManagerdevralmanız, yöntemini geçersiz kılmanız GoToStateCore ve özel mantığı kullanan denetimde ekli özelliği ayarlamanız VisualStateManager.CustomVisualStateManager 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

DependencyObjectType Bu örneğin CLR türünü sarmalayan öğesini alır.

(Devralındığı yer: DependencyObject)
Dispatcher

Dispatcher Bunun DispatcherObject ilişkili olduğu öğesini 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 VisualStateManager durumları arasında geçiş yapılan nesneyi alır veya ayarlar.

VisualStateGroups

Nesne koleksiyonunu VisualStateGroup alır veya ayarlar.

Yöntemler

CheckAccess()

Çağıran iş parçacığının bu DispatcherObjectöğesine eriş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ı tarafından belirtilir.

(Devralındığı yer: DependencyObject)
ClearValue(DependencyPropertyKey)

Salt okunur özelliğin yerel değerini temizler. Temizlenecek özellik tarafından DependencyPropertyKeybelirtilir.

(Devralındığı yer: DependencyObject)
CoerceValue(DependencyProperty)

Belirtilen bağımlılık özelliğinin değerini zorlama. Bu, çağrısında var olan bağımlılık özelliği için özellik meta verilerinde belirtilen herhangi bir CoerceValueCallback işlevi çağırarak DependencyObjectgerçekleştirilir.

(Devralındığı yer: DependencyObject)
Equals(Object)

Sağlanan DependencyObject öğesinin geçerli DependencyObjectile eşdeğer olup olmadığını belirler.

(Devralındığı yer: DependencyObject)
GetCustomVisualStateManager(FrameworkElement)

CustomVisualStateManager Ekli özelliği alır.

GetHashCode()

Bu DependencyObjectiçin bir karma kodu alır.

(Devralındığı yer: DependencyObject)
GetLocalValueEnumerator()

Hangi bağımlılık özelliklerinin bu DependencyObjectüzerinde yerel olarak ayarlı değerlere sahip olduğunu belirlemek için özelleştirilmiş bir numaralandırıcı oluşturur.

(Devralındığı yer: DependencyObject)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
GetValue(DependencyProperty)

Bir öğesinin bu örneğindeki bağımlılık özelliğinin DependencyObjectgeçerli geçerli değerini döndürür.

(Devralındığı yer: DependencyObject)
GetVisualStateGroups(FrameworkElement)

VisualStateGroups Ekli özelliği alır.

GoToElementState(FrameworkElement, String, Boolean)

öğeyi iki durum arasında geçişler. Bir uygulama tarafından tanımlanan durumları bir denetim tarafından değil, geçiş yapmak için bu yöntemi kullanın.

GoToState(FrameworkElement, String, Boolean)

Denetimi iki durum arasında geçişler. denetimine sahip ControlTemplatedenetim 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 Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Bu DependencyObject konudaki herhangi bir bağımlılık özelliğinin etkin değeri her 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 nesnede CurrentStateChanging olayı tetikler.

RaiseCurrentStateChanging(VisualStateGroup, VisualState, VisualState, FrameworkElement, FrameworkElement)

Belirtilen VisualStateGroup nesnede CurrentStateChanging olayı tetikler.

ReadLocalValue(DependencyProperty)

Varsa, bağımlılık özelliğinin yerel değerini döndürür.

(Devralındığı yer: DependencyObject)
SetCurrentValue(DependencyProperty, Object)

Bağımlılık özelliğinin değerini, değer kaynağını değiştirmeden ayarlar.

(Devralındığı yer: DependencyObject)
SetCustomVisualStateManager(FrameworkElement, VisualStateManager)

CustomVisualStateManager Ekli özelliği ayarlar.

SetValue(DependencyProperty, Object)

Bağımlılık özelliği tanımlayıcısı tarafından belirtilen bağımlılık özelliğinin yerel değerini ayarlar.

(Devralındığı yer: DependencyObject)
SetValue(DependencyPropertyKey, Object)

Salt okunur bağımlılık özelliğinin, bağımlılık özelliğinin DependencyPropertyKey tanımlayıcısı tarafından belirtilen 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 belirten bir değer döndürür.

(Devralındığı yer: DependencyObject)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)
VerifyAccess()

Çağıran iş parçacığının bu DispatcherObjectöğesine erişmesini zorlar.

(Devralındığı yer: DispatcherObject)

Şunlara uygulanır