当前位置:必发365电子游戏 > 编程 > Windows 8 交互语言
Windows 8 交互语言
2019-12-19

手势 – 让触控语言成为应用的风华正茂某个

小编们都对手势很熟知;好些个客商想都不想就明白在 Web 浏览器上运动和经过点击来运行应用。对于大家的话,手势是 Windows 8 交互语言的后生可畏种表明方式。通过手势能够获取顾客输入,并将输入映射到应用和种类中的自然操作。

手势输入显明是营造在指针之上。多数用到都是选用手势的指标,管理点击、平移和缩放,而与连锁的原始指针数据关系非常的小,只是传递这一个多少实行手势检查评定。

再思索一下输入平台的层系,每三个等级都补助风华正茂组同样的手势,这几个手势刚好反映了 Windows 8 人机联作语言。在好些个景况下,您无需教育顾客学习新的定义,他们就能接受你的选用。

必发365电子游戏 1
图 3:Windows 8 交互作用语言。注意它怎么着映射到支撑的手势集。

在 Windows 8中,大家的模子是暗中同意为具有应用提供指针输入,并让其选取要赠送到手势检查评定的数据集,怎样陈设该手势检验,以致怎么样管理输出。这种灵活性令你更易于正确地构建虚构的心得。

我们的互相语言体贴直接操作的标准,内容应“粘在手指上”。操作可完成那或多或少。从阳台的角度来说,手势是指我们认知并为其提供通告的其余交互作用。操作正是那么些品种的手势之后生可畏,与其他手势(如长按)相呼应。操作是改造、缩放和旋调换化(线性代数观念的 2D 仿射转变)的组合。对于新“开首”体验的身体力行,假诺您平移,实际上正是风姿洒脱种操作。假若您放下第二根手指饼起头缩放,则也是操作。不仅仅如此,大家相当轻便表明从意气风发根手指交互作用到两根手指的相互影响,以至运动与缩放之间的调换(或二者相结合)。

HTML 和 XAML 框架为您提供了手势事件,这个事件能够满意大好些个须要。如若您须要越多控件,举例额外的配备选项,请使用 Windows 运转时 GestureRecognizer。首先,您能够坚决守护如下实行布置:

C#

 

// C#
public GestureManager(Windows.UI.Xaml.Shapes.Rectangle target, Windows.UI.Xaml.UIElement parent)
{
    // Configure gesture recognizer
    gestureRecognizer = new Windows.UI.Input.GestureRecognizer();
    gestureRecognizer.GestureSettings =
        Windows.UI.Input.GestureSettings.Hold                           |
        Windows.UI.Input.GestureSettings.ManipulationRotate             |
        Windows.UI.Input.GestureSettings.ManipulationRotateInertia      |
        Windows.UI.Input.GestureSettings.ManipulationScale              |
        Windows.UI.Input.GestureSettings.ManipulationScaleInertia       |
        Windows.UI.Input.GestureSettings.ManipulationTranslateInertia   |
        Windows.UI.Input.GestureSettings.ManipulationTranslateX         |
        Windows.UI.Input.GestureSettings.ManipulationTranslateY         |
        Windows.UI.Input.GestureSettings.RightTap                       |
        Windows.UI.Input.GestureSettings.Tap;

    // Register event handlers for gestures
    gestureRecognizer.ManipulationStarted += OnManipulationStarted;
    gestureRecognizer.ManipulationUpdated += OnManipulationUpdated;
    gestureRecognizer.ManipulationInertiaStarting += OnManipulationInertiaStarting;
    gestureRecognizer.ManipulationCompleted += OnManipulationCompleted;
    gestureRecognizer.Holding += OnHolding;
    gestureRecognizer.RightTapped += OnRightTapped;
    gestureRecognizer.Tapped += OnTapped;         
}

JavaScript

// JS
function GestureManager(target, parent) {
    var gestureRecognizer = new Windows.UI.Input.GestureRecognizer;

    // Configure GestureRecognizer
    gestureRecognizer.gestureSettings =
        Windows.UI.Input.GestureSettings.hold                           |
        Windows.UI.Input.GestureSettings.manipulationRotate             |
        Windows.UI.Input.GestureSettings.manipulationRotateInertia      |
        Windows.UI.Input.GestureSettings.manipulationScale              |
        Windows.UI.Input.GestureSettings.manipulationScaleInertia       |
        Windows.UI.Input.GestureSettings.manipulationTranslateInertia   |
        Windows.UI.Input.GestureSettings.manipulationTranslateX         |
        Windows.UI.Input.GestureSettings.manipulationTranslateY         |
        Windows.UI.Input.GestureSettings.rightTap                       |
        Windows.UI.Input.GestureSettings.tap;

    // Register event handlers for gestures
    gestureRecognizer.addEventListener('manipulationstarted', onManipulationStarted);
    gestureRecognizer.addEventListener('manipulationupdated', onManipulationUpdated);
    gestureRecognizer.addEventListener('manipulationcompleted', onManipulationCompleted);
    gestureRecognizer.addEventListener('manipulationinertiastarting', 
        onManipulationInertiaStarting);
    gestureRecognizer.addEventListener('manipulationinertiacompleted', 
        onManipulationInertiaCompleted);
    gestureRecognizer.addEventListener('holding', onHolding);
    gestureRecognizer.addEventListener('tapped', onTapped);
    gestureRecognizer.addEventListener('righttapped', onRightTapped);
}

在其主干中,交互作用使用最感兴趣的是手势。对于大好多用到,流程是宣称应用找寻的手势,获取使用所见的指针数据,通过手势检查实验运营,并拍卖那么些手势。

在这里代码段中,能够见到全体指针数据是何等馈送到手势检查实验的,而无需检查输入类型或实行其它特定项目标处理:

C#

// C#
void OnPointerPressed(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
{
    var currentPoint = e.GetCurrentPoint(parent);

    // Make target capture the pointer associated to this event
    target.CapturePointer(e.Pointer);

    // Route the event to the gesture recognizer
    gestureRecognizer.ProcessDownEvent(currentPoint);
}

void OnPointerMoved(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
{
    // Route the event to the gesture recognizer
    // We pass all intermediate points that might have been coalesced 
    // in a single PointerMove event.
    gestureRecognizer.ProcessMoveEvents(e.GetIntermediatePoints(parent));
}

void OnPointerReleased(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
{
    var currentPoint = e.GetCurrentPoint(parent);

    // Route the event to the gesture recognizer
    gestureRecognizer.ProcessUpEvent(currentPoint);

    // Release pointer capture on the pointer associated to this event
    target.ReleasePointerCapture(e.Pointer);
}

void OnPointerWheelChanged(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
{
    var currentPoint = e.GetCurrentPoint(parent);
    bool shift = (e.KeyModifiers & Windows.System.VirtualKeyModifiers.Shift) == 
        Windows.System.VirtualKeyModifiers.Shift;
    bool ctrl = (e.KeyModifiers & Windows.System.VirtualKeyModifiers.Control) == 
        Windows.System.VirtualKeyModifiers.Control;

    // Route the event to the gesture recognizer
    gestureRecognizer.ProcessMouseWheelEvent(currentPoint, shift, ctrl);
}

JavaScript

 

// JS
function onPointerDown(evt) {
    // Make target capture the pointer associated to this event
    target.msSetPointerCapture(evt.pointerId);

    // Route the event to the gesture recognizer
    gestureRecognizer.processDownEvent(evt.getCurrentPoint(parent));
}

function onPointerMove(evt) {
    // Route the event to the gesture recognizer
    // We pass all intermediate points that might have been coalesced 
    // in a single PointerMove event.
    gestureRecognizer.processMoveEvents(evt.getIntermediatePoints(parent));
}

function onPointerUp(evt) {
    // Route the event to the gesture recognizer
    gestureRecognizer.processUpEvent(evt.getCurrentPoint(parent));
}

function onWheel(evt) {
    // Route the event to the gesture recognizer
    gestureRecognizer.processMouseWheelEvent(evt.getCurrentPoint(parent), evt.shiftKey, 
        evt.ctrlKey);
}

对于文书档案查看应用(如 Word),您重要对移动和缩放感兴趣。可认为那么些操作组件配置手势识别(忽视旋转)。当主视图上的指针数据传入时,应用将其传递给手势识别,然后手势识别重返操作已运转的风云提示,即一而再(也许调换为中间状态)或已终止。

手势,手势图片

效果

必发365电子游戏 2

必发365电子游戏, 

细节

1.UITouch

#import "ViewController_0.h"

@interface ViewController_0 ()

@property (nonatomic, strong)UILabel *label;

@end

@implementation ViewController_0

- (void)viewDidLoad {

    [super viewDidLoad];

    self.label                   = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    self.label.backgroundColor   = [UIColor yellowColor];
    self.label.layer.borderWidth = 1;
    [self.view addSubview:self.label];

    UILabel *textlabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 80, 200, 45)];
    textlabel.text     = @"拖动方块";
    [textlabel sizeToFit];
    textlabel.font     = [UIFont systemFontOfSize:12];
    [self.view addSubview:textlabel];
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event {

    //1.拿到手势
    UITouch *touch = [touches anyObject];

    //2.拿到touch 所在view的坐标
    CGPoint point = [touch locationInView:self.view];

    //3.让label拿到坐标
    self.label.center = point;

    NSLog(@"1.手指接触到了屏幕");
}

- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event {

    //1.拿到手势
    UITouch *touch = [touches anyObject];

    //2.拿到touch 所在view的坐标
    CGPoint point = [touch locationInView:self.view];

    //3.让label拿到坐标
    self.label.center = point;

    NSLog(@"2.手指在屏幕上移动");
}

- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event {

     NSLog(@"3.手指刚离开屏幕");
}

- (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event {

    NSLog(@"4.手势失效了");
}

@end

 

2.UITapGestureRecognizer

#import "ViewController_1.h"

@interface ViewController_1 ()

@property (nonatomic, strong) UILabel *label;

@end

@implementation ViewController_1

- (void)viewDidLoad {

    [super viewDidLoad];

    UILabel *textlabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 80, 200, 45)];
    textlabel.text     = @"电脑上操作tap手势 alt +shift 需要连续点击次数2次";
    [textlabel sizeToFit];
    textlabel.font     = [UIFont systemFontOfSize:12];
    [self.view addSubview:textlabel];

    self.label                        = [[UILabel alloc] initWithFrame:CGRectMake(100, 150, 100, 100)];
    self.label.backgroundColor        = [UIColor orangeColor];
    self.label.userInteractionEnabled = YES;
    self.label.text                   = @"0";
    self.label.textAlignment          = NSTextAlignmentCenter;
    [self.view addSubview:self.label];

    // 1.创建tap手势
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(labelTap:)];
    tap.numberOfTapsRequired    = 2; //需要轻轻点击的次数
    tap.numberOfTouchesRequired = 2;//需要的手指数量 :2根手指alt +shift 需要匹配点击次数2次(其实直接用默认的就好)
    [self.label addGestureRecognizer:tap];
}

- (void)labelTap:(UITapGestureRecognizer *)tap {

    int num = [self.label.text intValue];
    num++;
    self.label.text = [NSString stringWithFormat:@"%d",num ];
}

@end

 

3.UILongPressGestureRecognizer

#import "ViewController_2.h"

@interface ViewController_2 () <UIGestureRecognizerDelegate>

@property (nonatomic, strong) UILabel *label;

@end

@implementation ViewController_2

- (void)viewDidLoad {

    [super viewDidLoad];

    UILabel *textlabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 80, 200, 45)];
    textlabel.text     = @"long长按手势";
    [textlabel sizeToFit];
    textlabel.font     = [UIFont systemFontOfSize:12];
    [self.view addSubview:textlabel];

    self.label                        = [[UILabel alloc] initWithFrame:CGRectMake(40, 150, 200, 150)];
    self.label.backgroundColor        = [UIColor grayColor];
    self.label.userInteractionEnabled = YES;
    self.label.text                   = @"0";
    self.label.textAlignment          = NSTextAlignmentCenter;
    [self.view addSubview:self.label];

    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressAction:)];
    longPress.numberOfTapsRequired          = 1;
    longPress.numberOfTouchesRequired       = 1;
    longPress.minimumPressDuration          = 1.0;
    longPress.delegate   = self;
    [self.label addGestureRecognizer:longPress];
}

- (void)longPressAction:(UILongPressGestureRecognizer *)longPress {

    if(longPress.state == UIGestureRecognizerStateBegan) {

        NSLog(@"手势状态开始");

    } else if(longPress.state == UIGestureRecognizerStateEnded) {

        NSLog(@"手势状态结束");

    } else if(longPress.state == UIGestureRecognizerStateChanged) {

        NSLog(@"手势状态改变");

        NSInteger num = [self.label.text integerValue];
        num ++;
        self.label.text = [NSString stringWithFormat:@"%ld",(long)num];
    }
}

@end 

 

4.UISwipeGestureRecognizer

#import "ViewController_3.h"

@interface ViewController_3 ()

@property (nonatomic, strong) UILabel *label;

@end

@implementation ViewController_3

- (void)viewDidLoad {

    [super viewDidLoad];

    UILabel *textlabel      = [[UILabel alloc] initWithFrame:CGRectMake(10, 80, 200, 45)];
    textlabel.text          = @"swipe手势 向右滑动➕1,你也可以设置左划上划下划";
    textlabel.numberOfLines = 0;
    textlabel.font          = [UIFont systemFontOfSize:12];
    [self.view addSubview:textlabel];

    self.label                        = [[UILabel alloc] initWithFrame:CGRectMake(100, 150, 100, 100)];
    self.label.backgroundColor        = [UIColor grayColor];
    self.label.userInteractionEnabled = YES;
    self.label.text                   = @"0";
    self.label.textAlignment          = NSTextAlignmentCenter;
    [self.view addSubview:self.label];

    UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeAction:)];
    swipeGesture.direction                 = UISwipeGestureRecognizerDirectionRight;//默认就是向右划
    [self.label addGestureRecognizer:swipeGesture];
}

-(void)swipeAction:(UISwipeGestureRecognizer *)swipe {

    if (swipe.direction == UISwipeGestureRecognizerDirectionLeft) {

        NSLog(@"现在响应左划手势");

    } else if (swipe.direction == UISwipeGestureRecognizerDirectionRight) {

        NSLog(@"现在响应右划手势");

        NSInteger num   = [self.label.text integerValue];
        num ++;
        self.label.text = [NSString stringWithFormat:@"%ld",(long)num];

    } else if (swipe.direction == UISwipeGestureRecognizerDirectionUp) {

        NSLog(@"现在响应上划手势");

    } else if (swipe.direction == UISwipeGestureRecognizerDirectionDown) {

        NSLog(@"现在响应下划手势");
    }
}

@end

 

 5.UIPanGestureRecognizer

#import "ViewController_4.h"

@interface ViewController_4 ()

@property (nonatomic, strong) UILabel *label;

@end

@implementation ViewController_4

- (void)viewDidLoad {

    [super viewDidLoad];

    UILabel *textlabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 80, 200, 45)];
    textlabel.text     = @"pan手势,拖动方块";
    [textlabel sizeToFit];
    textlabel.font     = [UIFont systemFontOfSize:12];
    [self.view addSubview:textlabel];

    self.label                        = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    self.label.backgroundColor        = [UIColor grayColor];
    self.label.userInteractionEnabled = YES;
    self.label.text                   = @"0";
    self.label.textAlignment          = NSTextAlignmentCenter;
    [self.view addSubview:self.label];

    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panAction:)];
    [self.label addGestureRecognizer:pan];
}

- (void)panAction:(UIPanGestureRecognizer *)pan {

    CGPoint offset    = [pan  locationInView:self.view];
    self.label.center = offset;
}

@end

 

6.UIRotationGestureRecognizer

#import "ViewController_5.h"

@interface ViewController_5 ()

@property (nonatomic, strong) UILabel *label;

@end

@implementation ViewController_5

- (void)viewDidLoad {

    [super viewDidLoad];

    UILabel *textlabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 80, 200, 45)];
    textlabel.text     = @"模拟器测试旋转手势时,按住 option键,再用触摸板或鼠标操作";
    textlabel.font     = [UIFont systemFontOfSize:12];
    textlabel.numberOfLines = 0;
    [self.view addSubview:textlabel];

    self.label                        = [[UILabel alloc] initWithFrame:CGRectMake(40, 200, 200, 50)];
    self.label.backgroundColor        = [UIColor grayColor];
    self.label.userInteractionEnabled = YES;
    self.label.text                   = @"we are friends";
    self.label.textAlignment          = NSTextAlignmentCenter;
    [self.view addSubview:self.label];

    //(模拟器测试捏合和旋转手势时,按住 option 键,再用触摸板或鼠标操作)
    UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationAction:)];
    [self.view addGestureRecognizer:rotation];

}

- (void)rotationAction:(UIRotationGestureRecognizer *)rotation {

    self.label.transform = CGAffineTransformRotate(self.label.transform, rotation.rotation);
    rotation.rotation = 0; // 这个很重要!!!!!

//    static float  orginState;
//    
//    self.label.transform = CGAffineTransformMakeRotation(rotation.rotation + orginState);
//    
//    if (rotation.state == UIGestureRecognizerStateEnded) {
//        
//        orginState = orginState + rotation.state;
//        self.label.transform = CGAffineTransformMakeRotation(rotation.rotation);
//    }
}

@end

 

7.UIPinchGestureRecognizer

#import "ViewController_6.h"

@interface ViewController_6 ()

@property (nonatomic, strong) UILabel *label;

@end

@implementation ViewController_6

- (void)viewDidLoad {

    [super viewDidLoad];

    UILabel *textlabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 80, 200, 45)];
    textlabel.text     = @"模拟器测试捏合手势时,按住 option键,再用触摸板或鼠标操作";
    textlabel.font     = [UIFont systemFontOfSize:12];
    textlabel.numberOfLines = 0;
    [self.view addSubview:textlabel];

    self.label                        = [[UILabel alloc] initWithFrame:CGRectMake(100, 250, 80, 80)];
    self.label.backgroundColor        = [UIColor grayColor];
    self.label.userInteractionEnabled = YES;
    self.label.text                   = @"0";
    self.label.textAlignment          = NSTextAlignmentCenter;
    [self.view addSubview:self.label];

//    (模拟器测试捏合和旋转手势时,按住 option 键,再用触摸板或鼠标操作)
    UIPinchGestureRecognizer * pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pichGesture:)];
    [self.view addGestureRecognizer:pinch];
}

- (void)pichGesture:(UIPinchGestureRecognizer *)pinch {

    static float originScale = 1;

    //手势缩放返回的scale  是相对于上一次的
    self.label.transform = CGAffineTransformMakeScale(pinch.scale * originScale , pinch.scale*originScale);

    if (pinch.state == UIGestureRecognizerStateEnded) {

        originScale = originScale * pinch.scale;
    }
}

@end

 

效果 细节 1.UITouch #import " ViewController_0.h " @interface ViewController_0 ()@property (nonatomic, strong)UILabel * label; @end @implementation ViewCo...

编辑代码以跨情势和装置扩充利用范围

指南针的定义让我们对输入编制程序有了不一样的主见。指针有扶植通过减弱须要的代码量来兑现易于开垦性,它能够让您的行使越来越快地进来应用企业,其他,它还透过令你的应用轻便地定位到两种输入设备而恢宏覆盖的面积。同一时候,它还让你能够行使更简约的视图来拍卖输入。大家把个中豆蔻梢头种表现情势亲呢地誉为“代码管理触控,让系统来处理其余职务”。

代码处理触控(或称 CFT)是大家再一次寻思输入的结果,并且生龙活虎度改为了作者们的重视引导理念。大概更可信的表述是“代码管理指针,轻便得到触控和暗许的鼠标以致手写笔行为”,CFT 可让您编写轻便的代码来管理统风华正茂的指针事件,並且不要担心剩下的管理程序来拍卖全数三种重大指针输入。即使你有特定的输入行为,或许想要除操作系统私下认可提供的行为之外的作为,也得以兑现。

大家在前文中陈说的各类指针事件都在表达了实际上的 CFT。对于输入类型来讲,全部手势示例的指针管理程序都以不可以见到的。它们平常获取指针数据、设置捕获、执行点击测验或别的情形管理,然后将指针输入传递给手势识别。

C#

// C#
void OnPointerPressed(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
{
    var currentPoint = e.GetCurrentPoint(parent);

    // Make target capture the pointer associated to this event
    target.CapturePointer(e.Pointer);

    // Route the event to the gesture recognizer
    gestureRecognizer.ProcessDownEvent(currentPoint);
}

JavaScript

// JS
function onPointerDown(evt) {
    // Make target capture the pointer associated to this event
    target.msSetPointerCapture(evt.pointerId);

    // Route the event to the gesture recognizer
    gestureRecognizer.processDownEvent(evt.getCurrentPoint(parent));
}


CFT 不仅可以够扩展覆盖的面积和简化开荒工作。它还对风度翩翩致性和信念有一向的震慑。举个例子,假如你为点击配置手势检验,则足以兑现通过具有两种输入格局发起的点击。SecondaryTap 的配备将鼠标(单击右键)、触控(长按)和手写笔(长按或筒状按键点击)的“相同单击右键的手势”映射到联合的轩然大波。

上边是从手势示例中摘录的三个有的,展现了 TapRightTap 手势管理程序:

C#

// C#
void OnTapped(Windows.UI.Input.GestureRecognizer sender, Windows.UI.Input.TappedEventArgs 
    args)
{
    byte[] rgb = new byte[3];

    // Randomly change the color of target 
    randomGenerator.NextBytes(rgb);
    target.Fill = new 
        Windows.UI.Xaml.Media.SolidColorBrush(Windows.UI.ColorHelper.FromArgb(255, 
        rgb[0], rgb[1], rgb[2]));
}

void OnRightTapped(Windows.UI.Input.GestureRecognizer sender, 
    Windows.UI.Input.RightTappedEventArgs args)
{
    // Restore original values
    target.Fill = initialBrush;
    InitManipulationTransforms();
}

JavaScript

// JS
function onTapped(evt) {
    target.style.backgroundColor = getNextColorFromColor(target.style.backgroundColor);
}

function onRightTapped(evt) {
    // Reset target to its initial state (transform, color)
    target.style.backgroundColor = target.initialColor;
    target.style.msTransform = target.initialTransform;
}

在此些事件管理程序中都从未有过指针类型的反省。这样令你不要求实施额外的办事就能够触发来自各类输入类型的附和输入。

结束语

研商平台时,咱们盼望您轻巧地窥见你需求的内容,输入经过了专心设计,由此,这种最简便的不二等秘书诀同不常间也是能够在采用中选取同生龙活虎Windows 体验的方法。

输入平台应用风流洒脱种固定方法开展规划,目的是简化开垦、保持生机勃勃致性和自信心,相同的时候扩张覆盖面积。指针和 CFT 之类的概念能够节约您的小运和编排代码的工作量。手势检验能够令你在行使中轻轻易松地动用 Windows 8 交互作用语言,并为顾客提供生机勃勃致性和信念。平台和框架中的雷同概念可认为开拓人士提供生机勃勃致性。CFT 及其在指针中的表现情势和手势 API 让你能够轻巧地遮掩设备。

Windows 8 交互语言。大家对我们在 Windows 8 中付出的不竭以为欢悦不已,希望你能够赏识!

要打听输入平台的详细音信,请阅读我们的文书档案、下载示例,大概在论坛上提问。

谢谢!

-- Windows 高等项目首席营业官 Reed 汤森德

下一篇:没有了