uneta 17.04.15 bondarenko - what's new in windows 10 sdk?

Post on 27-Jul-2015

47 Views

Category:

Education

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Windows Phone 8Windows Phone 8.1

Windows 8

Xbox One

Windows 8.1

Windows 10

Windows on Devices

2

UAP = Universal App Platform

3

UAP

Windows Core

Windows Core

Windows Core

Windows Core

UAP UAP UAP

Desktop Mobile Xbox More…

UAP = Universal App Platform

4

Windows Phone 7.5/7.8

Windows Phone 8.0

Windows Phone 8.1*

Портировать UI Silverlight на Windows XAML

Переписать код под UAP APIs*

Адаптировать UX под разрешения

Windows 10

Windows Phone Silverlight Apps

5

Немного изменить код под UAP

Минимально адаптировать UX

Windows 10

Universal app

6

Необходимо поменять файл проекта и манифест package.appxmanifestНо средств в Visual Studio пока еще нет

…но уже есть написанный Powershell скрипт, который может это сделатьВот он - http://aka.ms/W10P-ProjectUpgradeUtility

Миграция проекта

7

Поддерживаемые директивы:1. WINDOWS_APP2. WINDOWS_PHONE_APP3. WINDOWS_UAP (new)

Shared project

8

Новые SDK

9

IsApiContractPresentIsEnumNamedValuePresentIsEventPresentIsMethodPresentIsPropertyPresentIsReadOnlyPropertyPresentIsTypePresentIsWriteablePropertyPresent

Windows.Foundation.Metadata.ApiInformation

Как определить с чем работаем?

10

var ns = "Windows.Phone.UI.Input.HardwareButtons";if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent(ns)){

Windows.Phone.UI.Input.HardwareButtons.BackPressed += Back_BackPressed;

Что получается в итоге?

11

SplitView

Your Windows App

SplitView

13

<SplitView>

<SplitView.Pane>

<StackPanel>

<RadioButton />

<RadioButton />

</StackPanel>

</SplitView.Pane>

</SplitView>

SplitView.Pane

14

<SplitView>

<SplitView.Pane />

<SplitView.Content>

<Frame/>

</SplitView.Content>

</SplitView>

SplitView.Content

15

SplitView.PaneDisplayMode

16

Windows XAML layout controls

Grid Stack Panel Canvas Scroll

Viewer Border View Box Wrap Grid Relative Panel

Relative Panel это XAML контрол. Контент располагается на основе отношения между

детьми.

RelativePanel

17

<RelativePanel>

<Rectangle x:Name="BlueRect" Height="100" Width=“200" Fill="Blue" />

<Rectangle x:Name="RedRect" Height="100" Width="100" Fill="Red"

RelativePanel.RightOf="BlueRect"RelativePanel.AlignVerticalCenterWith="BlueRect" />

</RelativePanel>

RelativePanel

18

<RelativePanel>

<Rectangle x:Name="BlueRect" Height="100" Width=“200" Fill="Blue" />

<Rectangle x:Name="RedRect" Height="100" Width="100" Fill="Red"

RelativePanel.Below="BlueRect"RelativePanel.AlignRightWith="BlueRect" />

</RelativePanel>

RelativePanel

19

<VisualState x:Name="LandscapeState"><VisualState.Setters>

<Setter Target="RedRectangle.(RelativePanel.AlignHorizontalCenterWith)"

Value="BlueRect" /><Setter Target="RedRectangle.(RelativePanel.Right)"

Value="BlueRectangle" /></VisualState.Setters>

</VisualState><VisualState x:Name="PortraitState">

<VisualState.Setters><Setter Target="RedRectangle.

(RelativePanel.AlignVerticalCenterWith)"Value="BlueRect" />

<Setter Target="RedRectangle.(RelativePanel.Below)" Value="BlueRectangle" />

</VisualState.Setters></VisualState>

Visual State Manager

20

<VisualState x:Name="wideState">      <VisualState.Setters>             <Setter Target="myPanel.Orientation" Value="Horizontal" />      </VisualState.Setters>      <VisualState.StateTriggers>             <AdaptiveTrigger MinWindowWidth="600"/>      </VisualState.StateTriggers></VisualState>

Adaptive trigger

21

Depth

OffsetYOffsetX

TranslateZ+

TranslateZ-

Transform3d

22

<Grid Width="300" Height="200">

    <Grid.Transform3D>         <PerspectiveTransform3D OffsetX="-150" OffsetY="-100" Depth="1000" />     </Grid.Transform3D>

    <Grid Background="Red">         <Grid.Transform3D>             <CompositeTransform3D RotationY="30" TranslateZ="1"/>         </Grid.Transform3D>     </Grid>

    <Grid Background="Blue">     <Grid.Transform3D>          <CompositeTransform3D RotationX="-30" TranslateZ="-1"/>     </Grid.Transform3D>     </Grid>

</Grid>

Transform3d

23

Проекция на плоскости

24

Перспектива и параллакс

25

Отправить токен файла

Запустить *определенное* прил.

App Services

Дождаться результатов запуска

Взаимодействие между приложениями

26

Запуск определенного приложения

var options = new LauncherOptions();options.TargetApplicationPackageFamilyName = "24919.InstapaperIt";

var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com");await Launcher.LaunchUriAsync(launchUri, options);

var queryUri = new Uri("instapaper:");await Launcher.QueryUriSupportAsync(queryUri, LaunchUriType.LaunchUri);

27

Хранилище для «шаринга»

var options = new LauncherOptions();options.TargetApplicationPackageFamilyName = "24919.InstapaperIt";

var token = SharedStorageAccessManager.AddFile (gpxFile);

ValueSet inputData = new ValueSet();inputData.Add("Token", token);

var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com");await Launcher.LaunchUriAsync(launchUri, options, inputData);

28

// первое приложениеvar options = new LauncherOptions();options.TargetApplicationPackageFamilyName = "24919.Instap";var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com");await Launcher.LaunchUriForResultsAsync(launchUri, options, data);

// второе приложениеvar resultData = new ValueSet();resultData.Add("Result", value);operation.ProtocolForResultsOperation.ReportCompleted(resultData);

Получение ответа

29

<Package> <Extensions>

<Extension Category="windows.publisherCacheFolder"> <PublisherCacheFolder> <Folder Name="Folder1"> </PublisherCacheFolder> </Extension>

</Extensions></Package>

Общая папка для одного автора

30

Доступ к папке “fonts”

Windows.Storage.ApplicationData.Current .GetPublisherCacheFolder("fonts");

Очистить общую папку

Windows.Storage.ApplicationData.Current .ClearPublisherCacheFolderAsync();

Общая папка для одного автора

31

Action center

32

Action center

- Максимум 20 уведомлений на приложение;

- Можно удалять одно или несколько уведомлений;

- Ставить «срок годности» уведомлениям;- Заменять уведомления другими;- Задавать уведомления св-ва Group или

Tag;- Отлавливать изменения в action center

при помощи специально триггера. Реализуется через BackgroundTask.

….. 33

• Карты (новый общий контрол)• АПИ батареи• CalendarPicker• LaunchFolder• InkCanvas• App Services• Распознавание речи

Еще новенького

34

Выводы

top related