static Клавиатура() { //var КультураИнфо = InputLanguageManager.Current.CurrentInputLanguage; byte первый = 0; byte последний = 172; var именаКлавиш = Enum.GetNames(typeof(Key)); var номер = Enum.ToObject(typeof(Key), 10); var h = new Key(); var Юникод = (int)Key.A; foreach (var клавиша in именаКлавиш) { Клавиши.Добавить(new Строка(клавиша)); } ЮНИКОДСимволКодыРусскихБуквПрописные = new ГруппаТипизированная() { ТипХранящихсяОбъектов = typeof(Символ) }; var ЮНИКОДСимволКодыРусскихБуквЗаглавные = new ГруппаТипизированная() { ТипХранящихсяОбъектов = typeof(Символ) }; ЮНИКОДРусскихБукв = new ГруппаОбъектов(); char большая; for (var с = 'а'; с <= 'е'; с++) { большая = с.ToString().ToUpper()[0]; ЮНИКОДСимволКодыРусскихБуквПрописные.Добавить(new Символ(большая)); ЮНИКОДСимволКодыРусскихБуквПрописные.Добавить(new Символ(с)); ЮНИКОДРусскихБукв.Добавить(new ЦелоеЧисло(с)); } большая = 'ё'.ToString().ToUpper()[0]; ЮНИКОДСимволКодыРусскихБуквПрописные.Добавить(new Символ(большая)); ЮНИКОДСимволКодыРусскихБуквПрописные.Добавить(new Символ('ё')); ЮНИКОДРусскихБукв.Добавить(new ЦелоеЧисло('ё')); for (var с = 'ж'; с <= 'я'; с++) { большая = с.ToString().ToUpper()[0]; ЮНИКОДСимволКодыРусскихБуквПрописные.Добавить(new Символ(большая)); ЮНИКОДСимволКодыРусскихБуквПрописные.Добавить(new Символ(с)); ЮНИКОДРусскихБукв.Добавить(new ЦелоеЧисло(с)); } var русскаяРаскладка = new Dictionary <Key, char> { [Key.F] = 'а', [Key.OemComma] = 'б', [Key.D] = 'в', [Key.U] = 'г', [Key.L] = 'д', [Key.T] = 'е', [Key.Oem3] = 'ё', [Key.Oem1] = 'ж', [Key.P] = 'з', [Key.B] = 'и', [Key.Q] = 'й', [Key.R] = 'к', [Key.K] = 'л', [Key.V] = 'м', [Key.Y] = 'н', [Key.J] = 'о', [Key.G] = 'п', [Key.H] = 'р', [Key.C] = 'с', [Key.N] = 'т', [Key.E] = 'у', [Key.A] = 'ф', [Key.Oem4] = 'х', [Key.W] = 'ц', [Key.I] = 'ш', [Key.O] = 'щ', [Key.M] = 'ь', [Key.Oem6] = 'ъ', [Key.Oem7] = 'э', [Key.OemPeriod] = 'ю', [Key.Z] = 'я' }; усскаяРаскладка = new Dictionary <Key, Адрес>(); // здесь должна быть пара key, modifiers //}; // или Инт это трансформация // слварь это описание типа связей между элементами (одностороней поиск по ключу) // клавишам можно сопаставить действия (удалить, Вставить,) //var словарьЮникода = new Dictionary<Адрес, Строка>(); // либо инт foreach (var key in русскаяРаскладка.Keys) { try { var символ = русскаяРаскладка[key]; усскаяРаскладка[key] = ЮНИКОДСимволКодыРусскихБуквПрописные.Список.Find( c => ((Символ)c).Значение == символ).СобственныйАдресПримитива; } catch { } } }
public static void ИнициализацияСловарейЯзыков() { // это безымянные группы var ЮНИКОДСимволКодыРусскихБукв = new ГруппаТипизированная() { ТипХранящихсяОбъектов = typeof(Символ) }; Хранилище.Добавить(ЮНИКОДСимволКодыРусскихБукв); //Клавиатура.ЮНИКОДСимволКодыРусскихБукв = ЮНИКОДСимволКодыРусскихБукв; var ЮНИКОДРусскихБукв = new ГруппаОбъектов(); Хранилище.Добавить(ЮНИКОДРусскихБукв); //Клавиатура.ЮНИКОДРусскихБукв = ЮНИКОДРусскихБукв; for (var с = 'а'; с <= 'я'; с++) { ЮНИКОДСимволКодыРусскихБукв.Добавить(new Символ(с)); ЮНИКОДРусскихБукв.Добавить(new ЦелоеЧисло(с)); } //------------------------------------ var актБуквы = new Активность() { Имя = "русские буквы" }; // группа всех букв русских например var адресАктБуквы = Хранилище.Добавить(актБуквы); var связь0 = new СвязьПамять { ИмяСвязи = "1, а",// номер в алфавите, изображение ТипСвязи = "имеет члена" }; актБуквы.ДобавьСвязь(связь0); // активность представляет конкретную букву // имеет код юникода, изображения возможно прямые, возможно через код Юникода // является членом группы Русские буквы это Группа словосочетания // Активности могут быть не активными, ничего не делать только указывать пути // Активности группы var актБуква = new Активность() { Имя = "буква а" }; var адресАктБуква = Хранилище.Добавить(актБуква); var связь11 = new СвязьПамять { ИмяСвязи = "член группы", ТипСвязи = "это", //или является членом группы АдресУдаленнойСвязи = связь0.АдресСобственный }; актБуква.ДобавьСвязь(связь11); var связь10 = new СвязьПамять { ИмяСвязи = "Код Юникода", ТипСвязи = "имеет" // соответсвует }; var адрессвязи1 = актБуква.ДобавьСвязь(связь10); // имеет связь с конкретной буквой, связь с группой "Коды Юникода" var актКод = new АктивностьЗначение() { Значение = new Символ('а') }; актКод.Имя = "Код ЮНИКОДА а"; // это ответ на вопрос Что это? совпадает с связью с группой var связь2 = new СвязьПамять(); связь2.ИмяСвязи = "Буква"; связь2.ТипСвязи = "чей"; //чей это код var адрессвязи2 = актКод.ДобавьСвязь(связь2); связь2.АдресУдаленнойСвязи = адрессвязи1; }