English 中文(简体)
How Can I Use the Visual State Manager in Blend for WPF Applications?
原标题:

When creating a control style & template in Blend for a WPF application, I want to take advantage of the Visual State Manager. How do I do this?

Whenever I right-click over the button and select Edit Template, Create Empty ... nothing shows up in the States panel.

When I do the same for Silverlight application, the typical states show up in the States panel.

Is this possible in Blend somehow? Or do I have to add all of this xaml manually?

最佳回答

The answer depends on what version of Blend you are using.

In Blend v2.0 with SP1 installed (and the WPFToolkit installed), you needed a registry key to even enable the Visual State Manager (VSM). See this post for more info. But the States panel was empty when creating a new template.

In Blend v3.0, you didn t need the tricky registry key, but once again, the States panel is still empty. Here is a Blend forum post that confirms this is how it works.

In Blend v4.0 (go download the preview here) ... the good news is that they fixed this! The states show up in the States panel and the necessary xaml gets spit out ... if you modify any of the states.

Note:

Blend 4 creates Visual Studio 2010 solutions & projects and targets WPF 4.0. You can always retarget to an older version of WPF, if that is what you are after, or simply copy/paste the xaml out.

问题回答

To be clear, with Blend 3, you must have the WPF toolkit installed on your machine as a pre-requisite.

The default controls shipping with WPF, however, do not use VSM yet. The main use case in WPF applications (unlike Silverlight, where all controls use States) is UserControls, where you can create your own state groups and states as part of the control. This is actually immensely useful, and something I would not want to live without any more :-)





相关问题
WPF convert 2d mouse click into 3d space

I have several geometry meshes in my Viewport3D, these have bounds of (w:1800, h:500, d:25). When a user clicks in the middle of the mesh, I want the Point3D of (900, 500, 25)... How can I achieve ...

Editing a xaml icons or images

Is it possible to edit a xaml icons or images in the expression design or using other tools? Is it possible to import a xaml images (that e.g you have exported) in the expression designer for editing?...

WPF: writing smoke tests using ViewModels

I am considering to write smoke tests for our WPF application. The question that I am faced is: should we use UI automation( or some other technology that creates a UI script), or is it good enough to ...

WPF - MVVM - NHibernate Validation

Im facing a bit of an issue when trying to validate a decimal property on domain object which is bound to a textbox on the view through the viewmodel. I am using NHibernate to decorate my property on ...

How do WPF Markup Extensions raise compile errors?

Certain markup extensions raise compile errors. For example StaticExtension (x:Static) raises a compile error if the referenced class cannot be found. Anyone know the mechanism for this? Is it baked ...

WPF design-time context menu

I am trying to create a custom wpf control, I m wondering how I can add some design-time features. I ve googled and can t seem to get to my goal. So here s my simple question, how can I add an entry ...

How to combine DataTrigger and EventTrigger?

NOTE I have asked the related question (with an accepted answer): How to combine DataTrigger and Trigger? I think I need to combine an EventTrigger and a DataTrigger to achieve what I m after: when ...

热门标签