0

有人知道如何将焦点放在 Prism InteractionRequest 的取消按钮上吗?

目前发生的情况是,假设您在主窗口中的按钮上按下了 Enter 并且 InteractionRequestTrigger 被触发,如果您再次按下 Enter,您将遇到麻烦,因为焦点停留在父窗口上并且 InteractionRequestTrigger 再次触发...

谢谢你的帮助

4

2 回答 2

0

触发InteractionRequestTrigger后,应自动设置焦点确认对话框。

您可能会发现以下基于状态的导航棱镜快速入门很有帮助:

Raise()在 QuickStart 中调用一个方法,通过设置正确的ViewModel上下文及其回调,在ChatViewModel 的方法中显示InteractionRequest 的对话框: SendMessage()

public IInteractionRequest SendMessageRequest
{
    get { return this.sendMessageRequest; }
}

public void SendMessage()
{
    var contact = this.CurrentContact;
    this.sendMessageRequest.Raise(
        new SendMessageViewModel(contact, this),
        sendMessage =>
        {
            if (sendMessage.Result.HasValue && sendMessage.Result.Value)
            {
                this.SendingMessage = true;

                this.chatService.SendMessage(
                    contact,
                    sendMessage.Message,
                    result =>
                    {
                        this.SendingMessage = false;
                    });
            }
        });
}

此外,ChatView检测交互请求并PopupChildWindowAction显示SendMessageChildWindow弹出窗口:

<prism:InteractionRequestTrigger SourceObject="{Binding SendMessageRequest}">
    <prism:PopupChildWindowAction>
        <prism:PopupChildWindowAction.ChildWindow>
            <vs:SendMessageChildWindow/>
        </prism:PopupChildWindowAction.ChildWindow>
    </prism:PopupChildWindowAction>
</prism:InteractionRequestTrigger>

我希望这有帮助。

于 2013-10-08T18:28:16.190 回答
0

啊! 我应该将我的弹出窗口标记为可聚焦!

于 2014-02-18T11:16:30.050 回答