2009-11-19 21 views
1

如何以正確的案例文本作爲用戶以WPF格式輸入它。我正在使用下面的代碼來做適當的套管工作正常,但我無法弄清楚如何在用戶輸入上做到這一點。在WPF中輸入正確的案例文本

Microsoft.VisualBasic.Strings.StrConv(txt.Text,VbStrConv.ProperCase,0); 

回答

0
 TextInfo txtinfo = Thread.CurrentThread.CurrentCulture.TextInfo; 
     string titleCaseString = txtinfo.ToTitleCase(theString); 

要在數據綁定工作,這一點,你可以寫一個WPF綁定轉換器和添加此邏輯存在。

 <TextBox> 
     <TextBox.Text> 
      <Binding Path="ViewModelProperty" Converter="{StaticResource TitleCaseConverter}" UpdateSourceTrigger="PropertyChanged" /> 
     </TextBox.Text> 
     </TextBox> 
0

您會希望在您的文本控件的Key_Down(或Up)事件中使用您擁有的或Jobi發佈的代碼。

+0

我不認爲KeyDown事件會工作,因爲它激發之前擊鍵已添加到文本框的文本屬性。我需要將整個字符串作爲實體來確定哪些字符需要大寫。如果我使用TextChanged事件,並將text屬性的值設置爲轉換的文本值,則光標始終位於文本字符串的前面,這意味着用戶從右向左進行了有效輸入。希望你有任何其他建議。 – Mairead 2009-11-19 17:45:10

+0

我剛剛失蹤 txt.Select(txt.Text.Length,0); 謝謝Nate Bross – Mairead 2009-11-19 17:55:56

0

在我們的應用程序中,我們有一個自定義的TextBox,我們已經重寫了PreviewTextInput事件來在那裏執行驗證(我們正在驗證對正則表達式的輸入並防止字符被添加,如果它是無效的) - 也許你可以做一些事情類似?

雖然我之前在自定義TextBoxed時遇到了問題,但插入到字符串開頭的插入符號卻是我無法完全掌握的東西,但不記得我們如何解決它。