2009-07-10 102 views
0

我有一個WPF用戶控件與一些文本框,這是託管在一個WPF窗口。 該文本框目前尚未綁定,但無法輸入任何文本框。WPF用戶控件與文本框

我在其中一個文本框的KeyDown事件中放置了一個斷點,它擊中它並且我可以看到我按下的鍵。作爲

<TextBox Grid.Row="3" 
      Grid.Column="4" 
      x:Name="PostcodeSearch" 
      Style="{StaticResource SearchTextBox}" 
      KeyDown="PostcodeSearch_KeyDown"/> 

風格爲

<Style x:Key="SearchTextBox" 
     TargetType="{x:Type TextBox}"> 
     <Setter Property="Control.Margin" Value="2"/> 
     <Setter Property="Height" Value="20"/> 
     <Setter Property="Width" Value="140"/> 
     <Setter Property="HorizontalAlignment" Value="Left"/> 
    </Style> 

我希望我忽略了一些東西明顯實現

的文本框聲明。

編輯:我只添加了KeyDown和KeyUp事件來證明按鍵正在通過。我沒有任何自定義功能。

+2

「PostcodeSearch_KeyDown」方法中發生了什麼? 只需使用純粹的XAML文本框和樣式,它對我來說都可以正常工作,因此剩下的唯一一件事就是該方法中的某些內容正在影響該框。 – Fenton 2009-07-10 07:02:11

回答

1

如果您的PostcodeSearch_KeyDown方法(或事件鏈中的文本框之前的任何其他人,也可能是Preview_KeyDown事件中的某個父控件)設置e.Handled = true(e是eventArgs),則該事件將不會傳播進一步消費者(作爲文本框),因此不會發生行動。

另一個原因可能是您的WPF的窗口在一個WinForms,應用託管,那麼你就需要調用

ElementHost.EnableModelessKeyboardInterop(YourWindow); 

爲了使鍵盤交互工作(谷歌/冰爲WPF的WinForms互操作的全解釋)