private void ShowView(OnScreenKeyboard.KeyboardViewId id)
 {
     if (!this.views.Contains((object)id))
     {
         this.CreateView(id);
     }
     this.active       = (OnScreenKeyboard.KeyboardView) this.views[(object)id];
     this.image.Source = (ImageSource)this.active.Image;
     this.image.InvalidateMeasure();
     this.scaleX  = (double)this.active.Image.Width / (double)this.image.Width;
     this.scaleY  = (double)this.active.Image.Height / (double)this.image.Height;
     this.offsetX = 0;
     this.offsetY = OnScreenKeyboard.Font.Height;
 }
        private void CreateView(OnScreenKeyboard.KeyboardViewId id)
        {
            int num1 = 16;
            int num2 = 32;
            int num3 = 48;

            int[] numArray = new int[10]
            {
                num2,
                num2,
                num2,
                num2,
                num2,
                num2,
                num2,
                num2,
                num2,
                num2
            };
            System.Drawing.Bitmap         bitmap        = (System.Drawing.Bitmap)null;
            OnScreenKeyboard.KeyboardView keyboardView1 = new OnScreenKeyboard.KeyboardView()
            {
                RowHeight = num2
            };
            switch (id)
            {
            case OnScreenKeyboard.KeyboardViewId.Lowercase:
                bitmap = Resources.GetBitmap(Resources.BitmapResources.Keyboard_Lowercase);
                keyboardView1.RowColumnOffset = new int[4]
                {
                    0,
                    num1,
                    0,
                    0
                };
                keyboardView1.ColumnWidth = new int[4][]
                {
                    numArray,
                    new int[9]
                    {
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2
                    },
                    new int[9]
                    {
                        num3,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num3
                    },
                    new int[5] {
                        num3, num2, num2 * 5, num2, num3
                    }
                };
                keyboardView1.Keys = new char[4][]
                {
                    new char[10]
                    {
                        'q',
                        'w',
                        'e',
                        'r',
                        't',
                        'y',
                        'u',
                        'i',
                        'o',
                        'p'
                    },
                    new char[9] {
                        'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'
                    },
                    new char[9]
                    {
                        char.MinValue,
                        'z',
                        'x',
                        'c',
                        'v',
                        'b',
                        'n',
                        'm',
                        char.MinValue
                    },
                    new char[5] {
                        char.MinValue, ',', ' ', '.', char.MinValue
                    }
                };
                OnScreenKeyboard.KeyboardView keyboardView2 = keyboardView1;
                Action[][] actionArray1 = new Action[4][];
                int        index1       = 2;
                Action[]   actionArray2 = new Action[9];
                actionArray2[0]      = (Action)(() => this.ShowView(OnScreenKeyboard.KeyboardViewId.Uppercase));
                actionArray2[8]      = (Action)(() => this.Backspace());
                actionArray1[index1] = actionArray2;
                actionArray1[3]      = new Action[5]
                {
                    (Action)(() => this.ShowView(OnScreenKeyboard.KeyboardViewId.Numbers)),
                    null,
                    null,
                    null,
                    (Action)(() => this.Close())
                };
                keyboardView2.SpecialKeys = actionArray1;
                break;

            case OnScreenKeyboard.KeyboardViewId.Uppercase:
                bitmap = Resources.GetBitmap(Resources.BitmapResources.Keyboard_Uppercase);
                keyboardView1.RowColumnOffset = new int[4]
                {
                    0,
                    num1,
                    0,
                    0
                };
                keyboardView1.ColumnWidth = new int[4][]
                {
                    numArray,
                    new int[9]
                    {
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2
                    },
                    new int[9]
                    {
                        num3,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num3
                    },
                    new int[5] {
                        num3, num2, num2 * 5, num2, num3
                    }
                };
                keyboardView1.Keys = new char[4][]
                {
                    new char[10]
                    {
                        'Q',
                        'W',
                        'E',
                        'R',
                        'T',
                        'Y',
                        'U',
                        'I',
                        'O',
                        'P'
                    },
                    new char[9] {
                        'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'
                    },
                    new char[9]
                    {
                        char.MinValue,
                        'Z',
                        'X',
                        'C',
                        'V',
                        'B',
                        'N',
                        'M',
                        char.MinValue
                    },
                    new char[5] {
                        char.MinValue, ',', ' ', '.', char.MinValue
                    }
                };
                OnScreenKeyboard.KeyboardView keyboardView3 = keyboardView1;
                Action[][] actionArray3 = new Action[4][];
                int        index2       = 2;
                Action[]   actionArray4 = new Action[9];
                actionArray4[0]      = (Action)(() => this.ShowView(OnScreenKeyboard.KeyboardViewId.Lowercase));
                actionArray4[8]      = (Action)(() => this.Backspace());
                actionArray3[index2] = actionArray4;
                actionArray3[3]      = new Action[5]
                {
                    (Action)(() => this.ShowView(OnScreenKeyboard.KeyboardViewId.Numbers)),
                    null,
                    null,
                    null,
                    (Action)(() => this.Close())
                };
                keyboardView3.SpecialKeys = actionArray3;
                break;

            case OnScreenKeyboard.KeyboardViewId.Numbers:
                bitmap = Resources.GetBitmap(Resources.BitmapResources.Keyboard_Numbers);
                keyboardView1.RowColumnOffset = new int[4];
                keyboardView1.ColumnWidth     = new int[4][]
                {
                    numArray,
                    numArray,
                    new int[9]
                    {
                        num3,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num3
                    },
                    new int[5] {
                        num3, num2, num2 * 5, num2, num3
                    }
                };
                keyboardView1.Keys = new char[4][]
                {
                    new char[10]
                    {
                        '1',
                        '2',
                        '3',
                        '4',
                        '5',
                        '6',
                        '7',
                        '8',
                        '9',
                        '0'
                    },
                    new char[10]
                    {
                        '@',
                        '#',
                        '$',
                        '%',
                        '&',
                        '*',
                        '-',
                        '+',
                        '(',
                        ')'
                    },
                    new char[9]
                    {
                        char.MinValue,
                        '!',
                        '"',
                        '\'',
                        ':',
                        ';',
                        '/',
                        '?',
                        char.MinValue
                    },
                    new char[5] {
                        char.MinValue, ',', ' ', '.', char.MinValue
                    }
                };
                OnScreenKeyboard.KeyboardView keyboardView4 = keyboardView1;
                Action[][] actionArray5 = new Action[4][];
                int        index3       = 2;
                Action[]   actionArray6 = new Action[9];
                actionArray6[0]      = (Action)(() => this.ShowView(OnScreenKeyboard.KeyboardViewId.Symbols));
                actionArray6[8]      = (Action)(() => this.Backspace());
                actionArray5[index3] = actionArray6;
                actionArray5[3]      = new Action[5]
                {
                    (Action)(() => this.ShowView(OnScreenKeyboard.KeyboardViewId.Lowercase)),
                    null,
                    null,
                    null,
                    (Action)(() => this.Close())
                };
                keyboardView4.SpecialKeys = actionArray5;
                break;

            case OnScreenKeyboard.KeyboardViewId.Symbols:
                bitmap = Resources.GetBitmap(Resources.BitmapResources.Keyboard_Symbols);
                keyboardView1.RowColumnOffset = new int[4];
                keyboardView1.ColumnWidth     = new int[4][]
                {
                    numArray,
                    numArray,
                    new int[9]
                    {
                        num3,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num2,
                        num3
                    },
                    new int[5] {
                        num3, num2, num2 * 5, num2, num3
                    }
                };
                keyboardView1.Keys = new char[4][]
                {
                    new char[10]
                    {
                        '~',
                        '`',
                        '|',
                        '•',
                        '√',
                        'π',
                        '÷',
                        '×',
                        '{',
                        '}'
                    },
                    new char[10]
                    {
                        '\t',
                        '£',
                        '¢',
                        '€',
                        'º',
                        '^',
                        '_',
                        '=',
                        '[',
                        ']'
                    },
                    new char[9]
                    {
                        char.MinValue,
                        '™',
                        '®',
                        '©',
                        '¶',
                        '\\',
                        '<',
                        '>',
                        char.MinValue
                    },
                    new char[5] {
                        char.MinValue, ',', ' ', '.', char.MinValue
                    }
                };
                OnScreenKeyboard.KeyboardView keyboardView5 = keyboardView1;
                Action[][] actionArray7 = new Action[4][];
                int        index4       = 2;
                Action[]   actionArray8 = new Action[9];
                actionArray8[0]      = (Action)(() => this.ShowView(OnScreenKeyboard.KeyboardViewId.Numbers));
                actionArray8[8]      = (Action)(() => this.Backspace());
                actionArray7[index4] = actionArray8;
                actionArray7[3]      = new Action[5]
                {
                    (Action)(() => this.ShowView(OnScreenKeyboard.KeyboardViewId.Lowercase)),
                    null,
                    null,
                    null,
                    (Action)(() => this.Close())
                };
                keyboardView5.SpecialKeys = actionArray7;
                break;
            }
            keyboardView1.Image = BitmapImage.FromGraphics(Graphics.FromImage((System.Drawing.Image)bitmap));
            this.views.Add((object)id, (object)keyboardView1);
        }