Wpf FlowDocument拒绝接受焦点

时间:2017-02-01 21:46:03

标签: c# wpf focus flowdocument

我已经尝试了一切我能想到的,只要父FlowDocument可见,我的UserControl就可以接受焦点:

public DesignView()
{
    InitializeComponent();
    IsVisibleChanged += OnIsVisibleChanged;
}

private void OnIsVisibleChanged(object sender, 
    DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
{
    if (Document.Focusable)
    {
        if (!Document.Focus())
        {
            FocusManager.SetFocusedElement(Document, Document);
            Keyboard.Focus(Document);
            Document.Dispatcher.BeginInvoke(
                DispatcherPriority.Input,
                new ThreadStart(delegate
                {
                    Keyboard.Focus(Document);
                    FocusManager.SetFocusedElement(Document, Document);
                    Document.Focus();
                })
            );
        }
    }
}

正如您所看到的,我已经尝试了FocusManager.SetFocusedElement()Keyboard.Focus()Document.Focus(),所有这些都取得了相同程度的成功...然后在单独的线程中尝试了每个方法,没有快乐。

我并没有同时尝试所有这些,只是试图说明这些方法中没有一个是有效的,尽管Document.Focusable总是true

修改

我的目标是让键盘焦点在FlowDocument中,以便用户可以立即开始键入。一切都在打字方式,但我不能让它一旦显示就得到它。

在此之后,IsFocused仍然是假的,FlowDocument中的键盘焦点不是

0 个答案:

没有答案