2015-02-05 15 views
0

我有一个XAML页面,点击一个“添加”按钮后,我创建一个UserControl并将其添加到我的Container。这个UserControl有一个矩形,一个文本框和几个按钮。我的问题是,在第一次单击“添加”按钮时,焦点会被赋予文本框。重复点击“添加”按钮创建更多的UserControl实例,但焦点仍然在TextBox1上。如果我现在单击文本框5,该框会变得焦点,但只要我单击外部,焦点就会返回到文本框1。我希望只关注点击文本框。如何使用户控件中的文本框没有收到负载的焦点?

我已经尝试在XAML中设置IsTabStop = true,并拦截tapped事件并将其设置为false,但这并没有明显的效果。

什么工作完全是设置文本框的tabIndex = 2,之前创建另一个按钮,并将其设定的tabIndex = 1,但我失去这项福利,当我设置按钮的能见度=崩溃了。 TextBox是最左边的控件,因此它必须具有最低的TabIndex(从技术上讲,TextBox左侧有一个Rectangle,但由于Rectangle不是控件,它不能有TabIndex)。

我该如何解决这个问题?

回答

0

我相信发生的事情是,当您添加更多控件时,它正在重置当前制表位索引。所以每当你添加一个控件时,TabStop 1的TextBox就会被关注。

你可以做什么,是在添加控件之后,在要控制的控件上调用Focus()

+0

我可以给焦点的UserControl的父?例如,父容器中的容器网格? – Freakishly 2015-02-05 20:57:11

+0

我可能是错的,但我不认为一个网格可以有重点。您需要将焦点设置为另一个控件,可能刚按下的按钮才是最有意义的。 – JeremyK 2015-02-05 21:01:40

+0

此外,没有办法从所有控件中“移除焦点”。你必须按照你所说的那样做,并创建一个隐藏的按钮,并将焦点放在该按钮上。 – JeremyK 2015-02-05 21:09:53

相关问题