2015-01-11 29 views
1

我有一個簡單的xaml頁面,其中包含一個TextBox和一個RichTextBlock。 RichTextBlock裏面有一些InlineUIContainers。文本框獲取不需要的焦點

但是,當用戶按下一個按鈕,我通過代碼刪除一個InlineUIContainer。這很順利,但每次完成後,頁面上的TextBox就會得到重點關注! 導致觸摸鍵盤彈出。任何人都知道爲什麼發生這種情況?或者我可以如何防止這種情況? 我無法設置IsTabStop,因爲如果需要,用戶仍然必須能夠填充內容。

我工作的一個WinRT的通用應用

一些代碼的Windows Phone的一部分,但實際的去除是在附加依賴項屬性 完成它的KeywordsInput文本框是獲得的每次刪除後的焦點

<TextBox x:Uid="Search_KeywordsInput" x:Name="SearchKeywordsInput" 
      Text="{Binding KeywordsInput, Mode=TwoWay}" /> 

<RichTextBlock Grid.Row="4" 
      Margin="0,9.5,0,0" 
      IsTextSelectionEnabled="False" 
      dependencyProperties:RichTextBlockTagCloud.Command="{Binding SelectedTagFilterCommand}" 
      dependencyProperties:RichTextBlockTagCloud.TagItems="{Binding SelectedFilters, Mode=TwoWay}"> 
<Paragraph x:Name="TagsFilters" /> 

foreach (InlineUIContainer container in buttonsToRemove) 
    tagParagraph.Inlines.Remove(container); 
+0

你應該粘貼你的頁面的代碼,以便我們可以看看它:) – Sergio0694

回答

2

您是否嘗試在Button上設置IsTabStop=False,所以點擊按鈕不會偷取RichTextBox的重點。

0

如果刪除了集中控制,則焦點將轉移到一個有效的控制。在這種情況下,找到的下一個控件是您的TextBox。如果將焦點停放在良性(非文字)控件上,然後再移除焦點按鈕,則鍵盤將不會觸發。

根據您的總體佈局,您可能可以將焦點設置到頁面,您可能有另一個有意義的按鈕,或者您可以將一個不可編輯的控件添加到Tab鍵順序。

+0

我發現奇怪的是,第一次在windows phone上打開一個頁面時,表示文本框不會獲得焦點,所以爲什麼要它現在變得焦點了?其他問題是拆除是在附屬的道具內完成的。在那裏我沒有關於網頁上其他控件的知識......但是我可以嘗試用消息或事件來做些事情來移動焦點...... – Depechie