在XAML中更改自定义控件的状态

时间:2014-04-22 20:44:13

标签: wpf xaml wpf-controls visual-studio-2013 visualstatemanager

我有一个使用我创建的自定义控件的WPF应用程序。在控件中,我在VisualStateGroup中定义了许多VisualStates。在自定义控件之外,但在同一个应用程序中,我有一些按钮,我想更改自定义控件的显示VisualState。这可以不编写代码吗?

1 个答案:

答案 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)。从外部切换状态会降低代码的可见性。

相关问题