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

发布于 2024-11-25 03:18:47 字数 267 浏览 2 评论 0原文

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

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

既然被问到了,是的,控件有 VisualStateGroupsVisualStates

I've tried using VisualStateManager.GetVisualStateGroups in the OnAttached override of my custom behavior, as well as in an event handler added to AssociatedObject.Loaded event in that behavior. Both times I get an empty list.

Is there another way to get the visual state groups defined for a control, or another event handler I should attach to?

Be for it's asked, yes, the control has VisualStateGroups and VisualStates.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦行七里 2024-12-02 03:18:47

基于安东尼的回答。
这里我举一个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;
}

Based on Anthony's answer.
Here I give an example for 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;
}
聚集的泪 2024-12-02 03:18:47

通常,VisualStateGroups 附加属性附加到控件的 ControlTemplate 中的顶级 FrameworkElement。因此,要检索此值,您可能需要使用 VisualTreeHelper 来获取控件的第一个子级,并查看它是否具有 VisualStateGroups 属性。

Usually the VisualStateGroups attached property is attached to the top level FrameworkElement in the control's ControlTemplate. Hence to retrieve this value you may need to use the VisualTreeHelper to get the first child of the control and see if that has a VisualStateGroups property.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文