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 özelliğe bir VisualStateGroup adlandırılmış CommonStates
VisualStateManager.VisualStatesGroups
ekler. Örnek içindeki MouseOver
ve Normal
VisualState nesnelerini CommonStates
VisualStateGrouptanı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 MouseOver
Storyboard 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 State2
durumlarını State1
tanımladığını varsayalım. Denetim içindeyse State1
ve veya GoToElementStateöğesine geçerseniz State2
GoToState, VisualStateManager film şeridini içinde State2
başlatır ve içindeki State1
film ş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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin