Bien que vous pouvez définir les paramètres régionaux de conversion par défaut dans WPF comme suggéré par Mamta Dalal il ne suffit pas de convertir la touche "décimal" appuie sur la chaîne correcte. Ce code affiche le symbole monétaire et la date/format de l'heure sur les contrôles liés aux données
//Will set up correct string formats for data-bound controls,
// but will not replace numpad decimal key press
private void Application_Startup(object sender, StartupEventArgs e)
{
//Among other settings, this code may be used
CultureInfo ci = CultureInfo.CurrentUICulture;
try
{
//Override the default culture with something from app settings
ci = new CultureInfo([insert your preferred settings retrieval method here]);
}
catch { }
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;
//Here is the important part for databinding default converters
FrameworkElement.LanguageProperty.OverrideMetadata(
typeof(FrameworkElement),
new FrameworkPropertyMetadata(
XmlLanguage.GetLanguage(ci.IetfLanguageTag)));
//Other initialization things
}
je trouve que la manipulation de la fenêtre à l'échelle de l'événement PreviewKeyDown est un peu plus propre que textbox spécifique (il serait mieux si elle pourrait être appliqué à l'échelle de l'application).
public partial class MainWindow : Window
{
public MainWindow()
{
//Among other code
if (CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator != ".")
{
//Handler attach - will not be done if not needed
PreviewKeyDown += new KeyEventHandler(MainWindow_PreviewKeyDown);
}
}
void MainWindow_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Decimal)
{
e.Handled = true;
if (CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator.Length > 0)
{
Keyboard.FocusedElement.RaiseEvent(
new TextCompositionEventArgs(
InputManager.Current.PrimaryKeyboardDevice,
new TextComposition(InputManager.Current,
Keyboard.FocusedElement,
CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator)
) { RoutedEvent = TextCompositionManager.TextInputEvent});
}
}
}
}
Si quelqu'un pouvait trouver un moyen de le mettre à l'échelle application ...
Merci pour la suggestion ... J'ai aussi trouvé un billet de blog qui me aide: http: //www.metanous .be/pharcyde/post/Utilise-le-numérique-pavé-décimal-clé-comme-le-séparateur-numérique-pour-tous-les-locaux-comme-dans-Excel.aspx –
LukePet, le lien propsoed est cassé, s'il vous plaît pourriez-vous répondre plus en détails. Merci. – sthiers
Pour les utilisateurs de VB.NET: https://social.msdn.microsoft.com/Forums/vstudio/en-US/4bedf3c3-be4f-4b2a-b5e0-21c1a41caeca/how-to-use-decimal-separator-in-a -wpf-textbox-? forum = wpf – Naucle