自定义控件的可视状态管理器

Dav*_*idA 5 c# silverlight vsm

我已经构建了一个扩展内容控件的自定义控件.在此我有一个工作正常的零件和状态模型.

然后我用它作为我的xaml的根(将代码放在Blend的templates文件夹中)

一切正常,我可以打开一个新的'DaveControl'并获得我想要的功能.

但是,如果我在这里添加一些视觉状态,例如alertOnScreen并尝试使用visualstatemanager它不起作用.

事实上没有列出的州.

SL3 GotoVisualState中的行为可以正常工作!

如何让代码中的视觉状态工作?

Dav*_*idA 7

所以解决方案如下:使用扩展的可视状态管理器!

ExtendedVisualStateManager.GoToElementState(this.LayoutRoot as FrameworkElement, "OffScreen", true);
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为它需要一个框架元素......等等. VisualStateManager.GoToState的解决方法不适用于Window