如何使用 VisualStateManager.GoToState 摆脱魔法字符串

How to get rid of magic strings by using VisualStateManager.GoToState

使用 WPF 的 VisualStateManager 时出现此问题: 首先创建状态:

<VisualState Name="MagicString">
    #Storyboard etc.
</VisualState>

然后这样调用状态集:

VisualStateManager.GoToElementState(element, "MagicString", true);

现在的问题是,如何去掉州名这个神奇的字符串。

找到解决方案 here。 可以通过将 Name 更改为 x:Name 来解决问题,如下所示:

<VisualState x:Name="MagicString">
    #Storyboard etc.
</VisualState>

将在视图 class 中创建一个可以通过代码隐藏访问的字段。所以调用是这样的:

VisualStateManager.GoToElementState(element, MagicString.Name, true);