在WPF中使用VisualStateManager时,可能需要在控件初始化时转换为VisualState。据我所知,没有办法在Xaml中声明初始状态,这给了您有限的选择权,可以在初始化后将代码转换为所需的状态。
在后面使用代码并非总是可取的,如果您使用绑定来控制VisualState,那么也不总是可能的。
所以问题是:如何在WPF中设置初始VisualState,而不在后面的代码中设置它?
最佳答案
评论太久了
绑定“应该”没有区别。如果它在后台代码中运行良好,则除非在绑定中确实有些奇怪,否则它一定可以从xaml中运行。
Blend的所有动作都可以视为xaml帮助工具。最终结果是您得到了一些xlml,它可以为您创建混合。如果您不想使用blend。只需在VS中自己添加xaml。
为此,可以对GoToStateAction进行编码,例如
<Window ...
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
...>
...
<Button x:Name="button"
Style="{DynamicResource ButtonStyle1}">
<i:Interaction.Triggers>
<i:EventTrigger>
<ei:GoToStateAction StateName="YourState"
TargetObject="{Binding ElementName=button}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
您还将在项目中需要相应的引用。
在旁注中尝试混合。它在特定位置具有优势。您可能不会直接替换键入xaml,但它是一个很好的帮助工具。除非强制执行,否则完全忽略它是毫无意义的IMO。
关于wpf - 在WPF中设置初始VisualState,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16955900/