Лекция 2 Раздел 2.1 Темы раздела 3 Windows Phone Программирование и дизайн 4 Windows Phone Инструменты для дизайна 5 Windows Phone Инструменты для создания кода 6 Windows Phone Metro-стиль 7 Windows Phone Silverlight и Metro 8 Windows Phone Программные объекты 9 Windows Phone Программные объекты public class Account { private decimal balance ; private string name ; public string GetName () { return name; } public bool SetName (string newName){ { // здесь можно проверить корректность имени name = newName; return true; } // другие методы get и set } 10 Windows Phone Поля класса public class Account { private decimal balance ; private string name ; public string GetName () { return name; } public bool SetName (string newName){ счёта: имя владельца счёта и баланс { // здесь можно проверить корректность имени name = newName; return true; } // другие методы get и set } Здесь хранятся данные банковского 11 Windows Phone Методы класса public class Account { Здесь описываются для доступа private decimal balance методы ; private string name ; public string GetName () { return name; } public bool SetName (string newName){ { // здесь можно проверить корректность имени name = newName; return true; } // другие методы get и set } к значениям полей класса 12 Windows Phone Использование класса Account Account rob = new Account(); rob.SetName("Rob"); 13 Windows Phone Объектно ориентированное программирование 14 Windows Phone Приложение «Сумматор» 15 Windows Phone Silverlight и объекты 16 Windows Phone Визуальные элементы Silverlight 17 Windows Phone Свойства визуальных элементов 18 Windows Phone Типы элементов 19 Windows Phone Иерархия классов в Silverlight 20 Windows Phone Иерархия классов Silverlight UIElement FrameworkElement TextBlock TextBox Control ContentControl ButtonBase Button 21 Windows Phone Иерархии классов 22 Windows Phone Silverlight и программный код 23 Windows Phone Silverlight и дизайн 24 Windows Phone Панель инструментов 25 Windows Phone Именование элементов Silverlight 26 Windows Phone Свойства элемента 27 Windows Phone Свойства в языке C# 28 Windows Phone Директивы private и public 29 Windows Phone Управление данными класса 30 Windows Phone Добавление возраста public class Account { private int age; /// остальные свойства счёта } 31 Windows Phone Добавление методов get и set public class Account { private int age; public int GetAge() { return this.age; } public void SetAge( int inAge ) { if ( (inAge > 0) && (inAge < 120) ) { this.age = inAge; } } } 32 Windows Phone Управление возрастом Account a = new Account(); a.SetAge(21); 33 Windows Phone Методы get и set 34 Windows Phone Использование свойств 35 Windows Phone Свойство Age public class Account { private int ageValue; public int Age { set { if ( (value > 8) && (value < 100) ) ageValue = value; } get { return ageValue; } } } 36 Windows Phone Ключевые слова get и set 37 Windows Phone Использование свойства Age Account s = new Account (); s.Age = 21; Console.WriteLine ( "Возраст: " + s.Age ); 38 Windows Phone Проверка работы свойств Account s = new Account (); int newAge = 150; s.Age = newAge; if (s.Age != newAge) Console.WriteLine("Значение возраста не было установлено"); 39 Windows Phone Несколько свойств для поля public int AgeInMonths { get { return this.ageValue * 12; } } 40 Windows Phone Свойства и уведомления 41 Windows Phone Создание страницы в Silverlight 42 Windows Phone Краткие итоги 43 Windows Phone Раздел 2.2 Темы раздела 45 Windows Phone XAML и Silverlight 46 Windows Phone Элементы Silverlight 47 Windows Phone Для чего нужен XAML 48 Windows Phone Содержимое файла XAML <TextBox Height="72" HorizontalAlignment="Left" Margin="8,19,0,0" Name="firstNumberTextBox" Text="0" VerticalAlignment="Top" Width="460" TextAlignment="Center" /> 49 Windows Phone Язык XAML 50 Windows Phone Использование XAML 51 Windows Phone XAML и XML 52 Windows Phone Использование языка XML <?xml version="1.0" encoding="us-ascii" ?> <HighScoreRecords count="2"> <HighScore game="Breakout"> <playername>Rob Miles</playername> <score>1500</score> </HighScore> <HighScore game="Space Invaders"> <playername>Rob Miles</playername> <score>4500</score> </HighScore> </HighScoreRecords> 53 Windows Phone Элемент HighScore <HighScore game="Breakout"> <playername>Rob Miles</playername> <score>1500</score> </HighScore> 54 Windows Phone Элемент HighScoreRecords <?xml version="1.0" encoding="us-ascii" ?> <HighScoreRecords count="2"> <HighScore game="Breakout"> <playername>Rob Miles</playername> <score>1500</score> </HighScore> <HighScore game="Space Invaders"> <playername>Rob Miles</playername> <score>4500</score> </HighScore> </HighScoreRecords> 55 Windows Phone XML и структуры данных 56 Windows Phone Формат XAML и объекты <TextBox Height="72" HorizontalAlignment="Left" Margin="8,19,0,0" Name="firstNumberTextBox" Text="0" VerticalAlignment="Top" Width="460" TextAlignment="Center" /> 57 Windows Phone XML-схемы 58 Windows Phone XML и программы 59 Windows Phone XAML и страницы Silverlight 60 Windows Phone Краткие итоги 61 Windows Phone Раздел 2.3 Темы раздела 63 Windows Phone Обозреватель решений 64 Windows Phone Файлы страницы MainPage 65 Windows Phone Содержимое файла кода namespace AddingMachine { public partial class MainPage : PhoneApplicationPage { // Конструктор public MainPage() { InitializeComponent(); } } } 66 Windows Phone Класс MainPage namespace AddingMachine { public partial class MainPage : PhoneApplicationPage { // Конструктор public MainPage() { InitializeComponent(); } } } 67 Windows Phone Конструктор класса MainPage namespace AddingMachine { public partial class MainPage : PhoneApplicationPage { // Конструктор public MainPage() { InitializeComponent(); } } } 68 Windows Phone Инициализация элементов namespace AddingMachine { public partial class MainPage : PhoneApplicationPage { // Конструктор public MainPage() { InitializeComponent(); } } } 69 Windows Phone Запуск приложения 70 Windows Phone Метод calculateResult private void calculateResult() { float v1 = float.Parse(firstNumberTextBox.Text); float v2 = float.Parse(secondNumberTextBox.Text); float result = v1 + v2; resultTextBlock.Text = result.ToString(); } 71 Windows Phone Преобразование значений private void calculateResult() { float v1 = float.Parse(firstNumberTextBox.Text); float v2 = float.Parse(secondNumberTextBox.Text); float result = v1 + v2; resultTextBlock.Text = result.ToString(); } 72 Windows Phone Получение результата private void calculateResult() { float v1 = float.Parse(firstNumberTextBox.Text); float v2 = float.Parse(secondNumberTextBox.Text); float result = v1 + v2; resultTextBlock.Text = result.ToString(); } 73 Windows Phone Вывод результата на экран private void calculateResult() { float v1 = float.Parse(firstNumberTextBox.Text); float v2 = float.Parse(secondNumberTextBox.Text); float result = v1 + v2; resultTextBlock.Text = result.ToString(); } 74 Windows Phone Свойства элементов Silverlight 75 Windows Phone Программы и события 76 Windows Phone Метод-обработчик события 77 Windows Phone Отображение результата private void equalsButton_Click( object sender, RoutedEventArgs e) { calculateResult(); } 78 Windows Phone Управление событиями 79 Windows Phone События и XAML <Button Content="equals" Height="72" HorizontalAlignment="Left" Margin="158,275,0,0" Name="equalsButton" VerticalAlignment="Top" Width="160" Click="equalsButton_Click" /> 80 Windows Phone Краткие итоги 81 Windows Phone