Как сделать WPF нечувствительным к регистру? - PullRequest
0 голосов
/ 22 июля 2010

Мне не нравится неспособность WPF интерпретировать текст без учета регистра.

Существуют ли какие-либо инструменты (например, плагины VS), которые возьмут мой код VB .NET и решат проблемы с учетом регистра для меня?

Редактировать: теперь с примерами.

Введите:

<Dockpanel DockPanel.Dock="Bottom">
        <Label Content="(c) blahblah" HorizontalAlignment="Left"  Name="Label2" VerticalAlignment="Bottom" Opacity=".75" Background="White" DockPanel.Dock="bottom"/>
    </DockPanel>

Выход:

<DockPanel DockPanel.Dock="Bottom">
    <Label Content="(c) blahblah" HorizontalAlignment="Left"  Name="Label2" VerticalAlignment="Bottom" Opacity=".75" Background="White" DockPanel.Dock="Bottom"/>
</DockPanel>

Ответы [ 4 ]

5 голосов
/ 22 июля 2010

Это похоже на попытку использовать C # без; или XAML без угловых скобок. Чувствительность к регистру является неотъемлемой частью языка XAML и системы привязки WPF. Если ваш VB-код вызывает проблемы при использовании его с WPF, включите Option Strict и исправьте несовместимый регистр в вашем коде.

1 голос
/ 22 июля 2010

Не думаю, что здесь проблема с WPF.

Если вам нужно проверить данные и удалить регистр из задачи, перед преобразованием преобразуйте все строки в верхний или нижний.

Если вам нужно изменить способ работы TextBox в WPF, либо создайте свой собственный унаследованный TextBox и переопределите свойство Text, либо измените установщики в связанных свойствах, чтобы изменить любое полученное значение, например

public string Name
{
  get { return this._name; }
  set 
  { 
     this._name = value.ToUpper(); 
     OnPropertyChanged("Name");
  }
}

Без дополнительной информации о проблеме я не уверен, что еще можно предложить.

0 голосов
/ 03 апреля 2019

легко и просто Если вам нужно сравнить две строки.Один может быть сохранен в списке, строке или является некоторой переменной, другая строка вводится пользователем в текстовое поле.Затем просто используйте To Upper или To Lower Они преобразуют строку сначала в верхний или нижний регистр только для compair_values.Ex.

string s = "ram" ;
string p = "Ram" ;

if(s.ToUpper()==p.ToUpper())
 {
   Console.WriteLine("String matched");
   MessageBox.Show("String matched");
 }
else 
{
   Console.WriteLine("Not matched");
   MessageBox.Show("Not matched");
}

Попробуйте, вы получите ответ

0 голосов
/ 04 марта 2016

Я не совсем уверен, чего вы пытаетесь достичь, но я столкнулся с проблемами чувствительности к регистру при проверке имен пользователей.Наш стандарт - SimpsonHJ, но некоторые пользователи могут заходить на свои машины как simpsonhj или SIMPSONHJ.Поэтому я сделал переменную, которая изменяет найденное имя пользователя на все прописные буквы

private string un = Environment.UserName.ToUpper();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...