Silverlight:VisualStateManager.GetVisualStateGroups 没有,我怎样才能获得它们?

Mas*_*ity 3 c# silverlight visualstatemanager attachedbehaviors silverlight-4.0

我尝试VisualStateManager.GetVisualStateGroupsOnAttached自定义行为的覆盖中使用,以及在添加到AssociatedObject.Loaded该行为中的事件的事件处理程序中使用。两次我都得到一个空列表。

是否有另一种方法来获取为控件定义的视觉状态组,或者我应该附加到的另一个事件处理程序?

因为它被问到了,是的,控件有VisualStateGroupsVisualStates

Jef*_* T. 5

基于安东尼的回答。这里我举一个Metro App的例子。

public VisualState GetCurrentState(string stateGroupName)
{
    VisualStateGroup stateGroup1 = null;

    IList<VisualStateGroup> list = VisualStateManager.GetVisualStateGroups(VisualTreeHelper.GetChild(this, 0) as FrameworkElement);

    foreach (var v in list)
        if (v.Name == stateGroupName)
        {
            stateGroup1 = v;
            break;
        }

    return stateGroup1.CurrentState;
}
Run Code Online (Sandbox Code Playgroud)