WPF在按钮上播放“点击”动画。从代码模拟点击

时间:2013-07-19 11:02:16

标签: c# .net wpf mvvm wpf-controls

我有10个默认的WPF按钮。

在某些特定情况下,我必须从我的视图模型中模拟\播放点击按钮的动画。 (在演示模式下应用并向用户演示其工作原理。)

我不知道如何模仿默认按钮点击,任何想法?

2 个答案:

答案 0 :(得分:2)

您需要UI自动化框架(System.Windows.Automation)才能通过代码点击按钮。

var element = AutomationElement.RootElement.FindFirst(
                TreeScope.Descendants,
                new AndCondition(new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Button), new PropertyCondition(AutomationElement.NameProperty, "Start", PropertyConditionFlags.IgnoreCase))
            );
var pattern = (InvokePattern)element.GetCurrentPattern(InvokePattern.Pattern);
pattern.Invoke();

此代码将点击WPF应用程序的Windows开始按钮。您可以采用相同的方式在应用中搜索按钮。

所需参考:UIAutomationClient,UIAutomationTypes

答案 1 :(得分:1)

如果我理解你想要的东西。您可以为所有按钮设置默认样式:

<Style TargetType="{x:Type Button}">
    <Style.Triggers>
        <Trigger Property="Button.IsPressed" Value="True">
            <Trigger.ExitActions>
                <BeginStoryboard>
                    <Storyboard>
                        ...
                    </Storyboard>
                </BeginStoryboard>
            </Trigger.ExitActions>
        </Trigger>
    </Style.Triggers>
</Style>