舊版應用程序轉換問題。 VB6 TextBox_KeyDown()允許更改密鑰(例如,強制按鍵爲大寫,但還有許多其他用途)。這怎麼能在WPF中完成?更改WPF KeyDown中的密鑰
我能看到的唯一方法就是處理所有的TextBox按鍵。實際上,重新實現TextBox編輯。我寧願不去那裏。
舊版應用程序轉換問題。 VB6 TextBox_KeyDown()允許更改密鑰(例如,強制按鍵爲大寫,但還有許多其他用途)。這怎麼能在WPF中完成?更改WPF KeyDown中的密鑰
我能看到的唯一方法就是處理所有的TextBox按鍵。實際上,重新實現TextBox編輯。我寧願不去那裏。
非常快速和骯髒的解決方案。假設你想要將TextBox.Text的值綁定到某個東西上,你可以編寫一個轉換器,它只需在字符串上調用ToUpper()。
在下面的示例中,文本框綁定到它自己。這很可能不是你想要的產品,但它可能會啓發。
<local:UpperConverter x:Key="toUpperConverter" />
...
<TextBox Text="{Binding RelativeSource={RelativeSource Mode=Self},
Path=Text, Mode=OneWay, Converter={StaticResource toUpperConverter},
UpdateSourceTrigger=PropertyChanged}" />
...
class UpperConverter:IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value.ToString().ToUpper();
}
你回答了這個例子,而不是問題。 – BSalita 2016-04-01 19:27:23
很有想象力的做法。我不相信這會適用於我的情況。我需要從邏輯上改變e.Key,而不是直觀地改變Text屬性。 – BSalita 2010-05-23 18:05:20
我明白了,但除非我錯過了某些東西,否則可以使用上面顯示的轉換器,只是您不綁定到TextBox本身,而是綁定到您成爲UpperStrokes的值。 你當然可以編輯實際的按鍵筆畫,但在我看來(再次,如果我沒有丟失某些東西)是過度工作。你可以發佈一些具體的場景/示例和可能的一些代碼? – ThomasAndersson 2010-05-23 22:23:42