我有10個默認的WPF按鈕。WPF在按鈕上播放「點擊」動畫。模擬點擊代碼
在某些特定情況下,我必須模擬\播放動畫的點擊按鈕從我的視圖模型。 (在演示模式下應用,並向用戶演示其工作原理。)
我不知道如何模仿默認按鈕點擊,任何想法?
我有10個默認的WPF按鈕。WPF在按鈕上播放「點擊」動畫。模擬點擊代碼
在某些特定情況下,我必須模擬\播放動畫的點擊按鈕從我的視圖模型。 (在演示模式下應用,並向用戶演示其工作原理。)
我不知道如何模仿默認按鈕點擊,任何想法?
您將需要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();
此代碼將單擊Windows開始按鈕來回你的WPF應用程序。您可以用相同的方式在您的應用中搜索按鈕。
需要的參考:UIAutomationClient,UIAutomationTypes
如果我明白你想要得到什麼。您可以爲所有按鈕設置默認樣式:
<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>
只需調用方法? –
@Viv我無法找到.Click();方法在一個按鈕... – Evgeny
@Viv現在我明白了。如何在沒有任何特定MVVM庫的情況下從MVVM中激發這部分代碼?正如我所看到的只有一種方式來傳遞委託或查看實例。 – Evgeny