Windows 10 SDK

36

Transcript of Windows 10 SDK

Page 1: Windows 10 SDK
Page 2: Windows 10 SDK

Windows Phone 8Windows Phone 8.1

Windows 8

Xbox One

Windows 8.1

Windows 10

Windows on Devices

2

Page 3: Windows 10 SDK

UAP = Universal App Platform

3

Page 4: Windows 10 SDK

UAP

Windows Core

Windows Core

Windows Core

Windows Core

UAP UAP UAP

Desktop Mobile Xbox More…

UAP = Universal App Platform

4

Page 5: Windows 10 SDK

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

Page 6: Windows 10 SDK

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

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

Windows 10

Universal app

6

Page 7: Windows 10 SDK

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

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

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

7

Page 8: Windows 10 SDK

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

Shared project

8

Page 9: Windows 10 SDK

Новые SDK

9

Page 10: Windows 10 SDK

IsApiContractPresentIsEnumNamedValuePresentIsEventPresentIsMethodPresentIsPropertyPresentIsReadOnlyPropertyPresentIsTypePresentIsWriteablePropertyPresent

Windows.Foundation.Metadata.ApiInformation

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

10

Page 11: Windows 10 SDK

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

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

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

11

Page 12: Windows 10 SDK

SplitView

Page 13: Windows 10 SDK

Your Windows App

SplitView

13

Page 14: Windows 10 SDK

<SplitView>

<SplitView.Pane>

<StackPanel>

<RadioButton />

<RadioButton />

</StackPanel>

</SplitView.Pane>

</SplitView>

SplitView.Pane

14

Page 15: Windows 10 SDK

<SplitView>

<SplitView.Pane />

<SplitView.Content>

<Frame/>

</SplitView.Content>

</SplitView>

SplitView.Content

15

Page 16: Windows 10 SDK

SplitView.PaneDisplayMode

16

Page 17: Windows 10 SDK

Windows XAML layout controls

Grid Stack Panel Canvas Scroll

Viewer Border View Box Wrap Grid Relative Panel

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

детьми.

RelativePanel

17

Page 18: Windows 10 SDK

<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

Page 19: Windows 10 SDK

<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

Page 20: Windows 10 SDK

<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

Page 21: Windows 10 SDK

<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

Page 22: Windows 10 SDK

Depth

OffsetYOffsetX

TranslateZ+

TranslateZ-

Transform3d

22

Page 23: Windows 10 SDK

<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

Page 24: Windows 10 SDK

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

24

Page 25: Windows 10 SDK

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

25

Page 26: Windows 10 SDK

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

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

App Services

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

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

26

Page 27: Windows 10 SDK

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

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

Page 28: Windows 10 SDK

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

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

Page 29: Windows 10 SDK

// первое приложение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

Page 30: Windows 10 SDK

<Package> <Extensions>

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

</Extensions></Package>

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

30

Page 31: Windows 10 SDK

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

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

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

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

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

31

Page 32: Windows 10 SDK

Action center

32

Page 33: Windows 10 SDK

Action center

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

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

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

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

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

….. 33

Page 34: Windows 10 SDK

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

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

34

Page 35: Windows 10 SDK

Выводы

Page 36: Windows 10 SDK