Опубликован: 15.06.2011 | Доступ: свободный | Студентов: 701 / 55 | Оценка: 4.25 / 4.00 | Длительность: 14:09:00
Лекция 10:

Новые возможности Silverlight 4

< Лекция 9 || Лекция 10: 12 || Лекция 11 >

COM взаимодействие

В приложении нужно сделать взаимодействие с переферийным устройством, которое предоставляет только COM-интерфейс? Или нужно работать с приложениями Office? Используя ComAutomationFactory API в приложении Silverlight 4, можно создавать и взаимодействовать с COM-объектами.

Пример кода (взаимодействие с Excel):

// создание экземпляра Excel
dynamic excel = ComAutomationFactory.CreateObject("Excel.Application");
 
excel.Visible = true; // включение его видимости для пользователя
 
// добавление книги
dynamic workbook = excel.workbooks;
workbook.Add();
 
dynamic sheet = excel.ActiveSheet; // получение активного листа

Требуются расширенные права (доверенное приложение).

API всплывающих уведомлений (Notification API)

В Silverlight 4 появилась возможность показа всплывающих уведомлений рядом с треем.

Используя NotificationWindow в Silverlight, вы получите простой или настраиваемый механизм уведомлений для вашего приложения.

Пример кода:

private void CustomNotificationButton_Click(object sender, RoutedEventArgs e)
{
   // создание окна уведомления
   NotificationWindow notify = new NotificationWindow();
   notify.Height = 74;
   notify.Width = 329;
 
   // создание содержимого этого окна
   CustomNotification custom = new CustomNotification();
   custom.Header = "Sample Header";
   custom.Text = "Hey this is a better looking notification!";
   custom.Width = notify.Width;
   custom.Height = notify.Height;
 
   // установка этого содержимого
   notify.Content = custom;
 
   // показ уведомления
   notify.Show(4000);
}

Уведомления могут быть использованы только в приложениях вне браузера.

Аутентификация в веб-запросах

В Silverlight 4 есть возможность передавать NetworkCredential информацию, используя стек ClientHttp, который был представлен в Silverlight 3.Чтобы передать логин/пароль сервису, используется следующий код:

//
NetworkCredential passing is available in ClientHttp networking stack
WebRequest.RegisterPrefix
    ("http://", System.Net.Browser.WebRequestCreator.ClientHttp);
WebClient myService = new WebClient();
myService.Credentials = new NetworkCredential
    ("someusername", "somepassword");
myService.UseDefaultCredentials = false; 
// Иначе будут использованы значения по-умолчанию
myService.DownloadStringCompleted += 
    new DownloadStringCompletedEventHandler(OnResultCompleted);
myService.DownloadStringAsync
    (new Uri(http://somewebsite.com/authenticatedservice));

Изменения в кросс-доменной работе

Если Silverlight 4 приложение работает в режиме повышенных привелегий (доверенное приложение), то для работы с веб-сервисами из другого домена вам больше не требуется использовать файлы "clientaccesspolicy.xml" или "crossdomain.xml".

Полный доступ к клавиатуре в режим full-screen

Если ваше приложение Silverlight работает в полном экране ( IsFullScreen="true" ), вам был доступен лишь ограниченный ввод с клавиатуры. В доверенных приложениях на Silverlight 4 в режиме полного экрана полностью поддерживается ввод с клавиатуры для элементов типа TextBox и др. Требуются расширенные права (доверенное приложение).

Обрезание текста

Элемент TextBlock имеет новое свойство, называемое TextTrimming, которому может быть установлено в значение WordElipse. Когда это сделано, любой текст, непомещающийся в ширину элемента, будет обрезан, а вместо его непоказанной части будет многоточие.

Пример кода:

<TextBlock HorizontalAlignment="
     Left" VerticalAlignment="Top" 
   Text="The quick brown fox jumped over the tall white fence" 
   TextTrimming="WordEllipsis" Width="120" />

Дополнительные возможности

Новые возможности SIlverlight 4. http://msdn.microsoft.com/ru-ru/library/dd772166(v=vs.95).aspx

< Лекция 9 || Лекция 10: 12 || Лекция 11 >