- •Часть 2
- •2012 Часть 2-1. Создание и настройка приложения asp.Net
- •Упражнение 1 - Создание проекта веб-сайта и страницы
- •Упражнение 2: Добавление и программирование элементов управления
- •Упражнение 4: Работа с дополнительными элементами управления
- •Часть 2-2. Добавление кода к Web-форме Microsoft asp.Net.
- •Описание шагов выполнения работы
- •Ход выполнения работы
- •Результат работы программы
- •Часть 2-3. Создание элементов управления asp.Net и их использование
- •Ход выполнения работы
- •Часть 2-4. Создание элементов управления asp.Net и их использование
- •2.4.1 Создание пользовательских результатов трассировки
- •Ход выполнения лабораторной работы Упражнение 1 - Создание веб-узла на базе файловой системы
- •Упражнение 2. Использование трассировки для поиска ошибок
- •Упражнение 3 – отображение сведений трассировки в окне средства просмотра трассировки
- •Упражнение 4. Создание пользовательских результатов трассировки
- •Часть 2-5.Создание и использование пользовательских элементов управления
- •Ход выполнения лабораторной работы Упражнение 1 - Создание веб-узла
- •Упражнение 2. Создание пользовательского элемента управления
- •Упражнение 3 - Использование пользовательского элемента управления
- •Упражнение 4. Добавление пользовательских свойств и методов к пользовательскому элементу управления
- •Упражнение 5 - Тестирование свойств и метода пользовательского элемента управления
- •Часть 2-6.Доступ к данным с использованием Microsoft ado.Net Microsoft Visual Studio 2010
- •Ход выполнения работы Упражнение 1. Создание службы
- •Упражнение 2. Создание клиентского приложения
- •Упражнение 3 - Добавление возможностей фильтрации
- •Часть 2-7.Создание приложения asp.Net ajax
- •Упражнение 1 - Создание веб-узла asp.Net
- •Упражнение 2 - Добавление элемента управления UpdatePanel на веб-страницу asp.Net
- •Упражнение 3 - Добавление содержимого в элемент управления
- •Упражнение 4 - Добавление элемента управления UpdateProgress на страницу
- •Упражнение 5 - Добавление задержки в пример приложения
- •Часть 2-8. Использование Microsoft Silverlight для предоставления динамического контента
- •Упражнение 1 - Создание проекта Silverlight
- •Упражнение 2. Определение макета сетки
- •Упражнение 3 - Добавление кода
- •Упражнение 4 - Создание динамического макета
Упражнение 3 - Добавление кода
В открывающем теге для TextBlock сообщения добавьте следующее свойство
имени message1.
x:Name="message1"
Аналогично:
x:Name="name1"
x:Name="cal1"
x:Name="okButton"
Добавим обработчик событий на кнопку:
private void okButton_Click(object sender, RoutedEventArgs e)
{
string dateString;
if (cal1.SelectedDate == null)
{
dateString = "<date not selected>";
}
else
{
dateString = cal1.SelectedDate.ToString();
}
message1.Text = "Hi " + name1.Text + "\n" +
"Selected Date: " + dateString; }
Рис. 3
Упражнение 4 - Создание динамического макета
В MainPage.xaml в элементе Grid..::..RowDefinitions изменим значения Height на
следующие:
<RowDefinition Height="Auto"/>
<RowDefinition Height="*" MinHeight="220"/>
<RowDefinition Height="Auto"/>
В элементе Grid..::..ColumnDefinitions изменим значения Width на следующие
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*"/>
Добавим следующее свойство Margin в элементы TextBlock имени, даты и
сообщения
Margin="10,5,10,5"
Добавим следующее свойство FontSize в TextBlock сообщения для увеличения
размера шрифта.
FontSize="20"
Листинг
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace HelloSilverlight
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}
private void okButton_Click(object sender, RoutedEventArgs e)
{
string dateString = "";
if (cal1.SelectedDate == null) {
dateString = "<date not selected>";
} else {
dateString = cal1.SelectedDate.ToString(); }
message1.Text = "Hi " + name1.Text + "\n" + "Selected Date: " + dateString;}
<UserControl xmlns:my="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" x:Class="HelloSilverlight.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Grid x:Name="LayoutRoot" Background="Aqua" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*" MinHeight="220"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text= "Date:" Grid.Row="1" Grid.Column="0" Margin="10,5,10,5" FontSize="20"/>
<TextBlock Text="Message" Grid.Row="2" Grid.Column="0" x:Name="message1" Margin="10,5,10,5" FontSize="20"/>
<TextBlock Text="Name" Grid.ColumnSpan="2" Margin="10,5,10,5" FontSize="20"/>
<TextBox Text="Your Name" Grid.Row="0" Grid.Column="1" Width="150" HorizontalAlignment="Left" x:Name="name1" Margin="0,5,0,5"/>
<StackPanel Grid.Column="1" Grid.Row="1" Orientation="Vertical">
<my:Calendar x:Name="cal1" Margin="0,5,0,5"/>
<Button Click="okButton_Click" Width="75" Height="25" HorizontalAlignment="Left" Content="OK" x:Name="okButton" Margin="0,5,0,5"/>
</StackPanel>
</Grid>
</UserControl>
HelloSilverlight.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace HelloSilverlight
{
public partial class App : Application
{
public App()
{
this.Startup += this.Application_Startup;
this.Exit += this.Application_Exit;
this.UnhandledException += this.Application_UnhandledException;
InitializeComponent();}
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new MainPage();
}
private void Application_Exit(object sender, EventArgs e) {}
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
// Если приложение выполняется вне отладчика, воспользуйтесь для сообщения об исключении
// механизмом исключений браузера. В IE исключение будет отображаться в виде желтого значка оповещения
// в строке состояния, а в Firefox - в виде ошибки сценария.
if (!System.Diagnostics.Debugger.IsAttached)
{
// ПРИМЕЧАНИЕ. Это позволит приложению выполняться после того, как исключение было выдано,
// но не было обработано.
// Для рабочих приложений такую обработку ошибок следует заменить на код,
// оповещающий веб-сайт об ошибке и останавливающий работу приложения.
e.Handled = true;
Deployment.Current.Dispatcher.BeginInvoke(delegate { ReportErrorToDOM(e); }); } }
private void ReportErrorToDOM(ApplicationUnhandledExceptionEventArgs e)
{
try
{
string errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace;
errorMsg = errorMsg.Replace('"', '\'').Replace("\r\n", @"\n");
System.Windows.Browser.HtmlPage.Window.Eval("throw new Error(\"Unhandled Error in Silverlight Application " + errorMsg + "\");");}
catch (Exception) }}
Результат работы программы:
Рис. 4.Результат
Вывод:В данной лабораторной работе мы познакомились с использованием Microsoft Silverlight для предоставления динамического контента. Познакомились с языком разметкиdesktop иweb приложенийXAML.