Новые возможности Silverlight 4
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