我有一个使用我创建的自定义控件的WPF应用程序。在控件中,我在VisualStateGroup中定义了许多VisualStates。在自定义控件之外,但在同一个应用程序中,我有一些按钮,我想更改自定义控件的显示VisualState。这可以不编写代码吗?
答案 0 :(得分:1)
是的,您只需使用XAML就可以从外部更改自定义控件的状态:
<Button Content="Button"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<ei:GoToStateAction TargetObject="{Binding ElementName=myControl}" StateName="SomeState"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
然而尽可能避免它。通常控件应该管理自己的状态。例如,您可以在自定义控件中公开一些属性,这些属性将触发状态(在代码中或通过控件样式的Trigger / Action)。从外部切换状态会降低代码的可见性。