【发布时间】:2014-04-09 16:19:43
【问题描述】:
我以编程方式创建以下对象(MainGrid 是窗口上的主网格):
ContentControl cc = new ContentControl();
Grid gr = new Grid();
RichTextBox rtb = new RichTextBox();
MainGrid.Children.Add(cc);
cc.Content = gr;
gr.Children.Add(rtb);
然后我尝试将焦点放在RichTextBox 上。我尝试不同的变体,包括 rtb.Focusable = true; rtb.Focus(); 和 FocusManager.SetFocusedElement(XXX, rtb); 与不同的元素 XXX(cc、gr、MainGrid、this)。没有什么帮助。
同时,如果我删除带有 ContentControl 的图层,那么它可以正常工作:
Grid gr = new Grid();
RichTextBox rtb = new RichTextBox();
MainGrid.Children.Add(gr);
cc.Content = gr;
gr.Children.Add(rtb); rtb.Focus();
看来是ContentControl导致RichTextBox无法聚焦的问题。
不幸的是,我收到这个 ContentControl 作为来自另一个表单的输入(因此,实际上我没有创建实例,但我将输入转换为 ContentControl:cc=(ContentControl)input)。所以我无法摆脱它。
您能否建议如何设置rtb 焦点?
非常感谢您的帮助!
【问题讨论】:
-
您需要阅读 MSDN 上的 Focus Overview 和 Walkthrough: Getting Started with WPF 页面。
标签: c# wpf wpf-controls focus contentcontrol