Опубликован: 01.11.2011 | Доступ: свободный | Студентов: 1424 / 63 | Оценка: 3.84 / 3.44 | Длительность: 15:38:00
Специальности: Программист
Лекция 6:

Знакомство с XAML

< Лекция 5 || Лекция 6: 12 || Лекция 7 >

9.2. Разработка интерфейса приложения

На смену традиционным Windows Forms постепенно приходит технология WPF. С помощью xaml можно создавать программы с очень красочным интерфейсом. Рассмотрим пример программы-переводчика. Интерфейс был создан по мотивам приложения, описанного в книге Мэтью Мак-Дональда [20].

Создаем приложение Lecture_6_7.

Код MainWindow.xaml:

<Window x:Class="Lecture_6_7.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid Name="grid1">
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <TextBox Name="txtQuestion" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" 
  Margin="10,10,13,10" TextWrapping="Wrap" Grid.Row="0" 
  FontFamily="Verdana" FontSize="24" Foreground="Green">
            Введите слово по-английски
        </TextBox>

        <Button VerticalAlignment="Top" HorizontalAlignment="Left" Margin="10,0,0,20" Width="127" 
  Height="23" Name="cmdAnswer" 
  Click="cmdTranslate_Click" Grid.Row="1">
            Перевести
        </Button>

        <TextBox VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="10,10,13,10" 
  Name="txtAnswer" TextWrapping="Wrap" 
  IsReadOnly="True" FontFamily="Verdana" 
   FontSize="24" Foreground="Green" 
    Grid.Row="2">
            Здесь будет перевод
        </TextBox>
        <Grid.Background>
            <LinearGradientBrush>
                <LinearGradientBrush.GradientStops>
                    <GradientStop Offset="0.00" Color="Red"/>
                    <GradientStop Offset="0.50" Color="Indigo"/>
                    <GradientStop Offset="1.00" Color="Violet" />
                </LinearGradientBrush.GradientStops>
            </LinearGradientBrush>
        </Grid.Background>
    </Grid>

</Window>
    

Код MainWindow.xaml.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Lecture_6_7
{
    class AnswerGenerator
    {
        string str;
        public string getTranslate(string Question)
        {
            switch (Question)
            {
                case "Apple": str = "Яблоко"; break;
                case "Lemon": str = "Лимон"; break;
                case "Orange": str = "Апельсин"; break;
                case "Mellon": str = "Дыня"; break;
                case "Water": str = "Вода"; break;
                case "Bred": str = "Хлеб"; break;
                case "Butter": str = "Масло"; break;
            }
            return str;
        }
    }

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void cmdTranslate_Click(object sender, RoutedEventArgs e)
        {
            AnswerGenerator generator = new AnswerGenerator();
            txtAnswer.Text = generator.getTranslate(txtQuestion.Text);
        }
    }

}
    
Листинг .

Результат:


< Лекция 5 || Лекция 6: 12 || Лекция 7 >