首页 > 代码库 > 01、双击触发 “系统搜索” 和下拉 “通知中心”

01、双击触发 “系统搜索” 和下拉 “通知中心”

 

在 windows phone 8.1 以后,当一个前台 app 处于 “全屏模式” 时,用户需要 “双击” 手机搜索按钮才能显示搜索框。

这是为了避免用户 “误触发” 搜索操作。 App 可以通过编程设置是否显示为 “full-screen” mode。

 

在 wp8 以前,很多用户都会抱怨,在玩游戏或者看视频时,由于 “误触” 了搜索键,导致游戏或视频暂停。如果

应用能够开启 “双击触发” 的交互,相信提升了不少用户体验。

 

1)双击 “搜索按钮” 打开系统搜索:

   (在 wp8.1 上,开启系统搜索,需要把系统 “位置” 设置为 关闭,否则默认启动 cortana。不过双击效果一样)

 

技术分享

 

2)两次 “向下划动”,打开系统 “通知中心”

技术分享

 

全屏模式,在以下情况时默认开启:

1)相片浏览(Photo viewer)

2)视频浏览 (Video viewer)

3)照片拍摄 (Caputring a photo)

4)所有的类型为 “游戏” 的 app(Any app in with the Games category)

 

两次单击的默认间隔时间是 2500 毫秒。因此,在 app 处于全屏模式时,

必须在 2500毫秒内两次双击 “Search” 按钮时,才能触发搜索。这个默认的时间

可以通过修改系统的注册表(CustomHoldDelays 的 value进行修改,单位为毫秒):

HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\CustomHoldDelays

 

这个设置对于app 的使用者是不可见的。

 

这个改变的另外的一个影响就是,当 app 处于 full-screen mode 时,用户必须 “向下划动” 两次

才能打开通知中心。

 

MediaElement  示例 (运行在 wp8.1 系统的手机上):

1、在 wp8 的 silverlight 的工程中 

1) 如果只是在 xaml 中添加一个 MediaElement 的控件,并不能启动 “full-screen” mode:

技术分享

 

<Grid x:Name="LayoutRoot" Background="Transparent">    <MediaElement Source="李玉刚.mp4" AutoPlay="True"   /></Grid>


2)使用系统 Task ,调用系统的播放器,默认是 “full-screen” mode:

 

Microsoft.Phone.Tasks.MediaPlayerLauncher l = new Microsoft.Phone.Tasks.MediaPlayerLauncher();// 路径为系统安装包。如果是 MediaLocationType.Data,则可以指定网络路径l.Location = Microsoft.Phone.Tasks.MediaLocationType.Install;l.Media = new Uri("李玉刚.mp4", UriKind.Relative);l.Controls = Microsoft.Phone.Tasks.MediaPlaybackControls.All; // 显示所有系统播放器的按钮l.Show();

 

2、在 wp8.1 的 Store 工程中 

1)如果只是把 MediaElement 的 “全屏” 属性设置为  IsFullWindow="True" ,并不能开启 “full-screen” mode

<Grid>    <MediaElement Source="李玉刚.mp4" AutoPlay="True"  IsFullWindow="True" /></Grid>

 

需要把 AreTransportControlsEnabled 属性设置为 true ,即使用 MediaElement 的默认控件,才能开启 “full-screen” mode:

<Grid>    <MediaElement AreTransportControlsEnabled="True" Source="李玉刚.mp4" AutoPlay="True"  IsFullWindow="True" />  </Grid>

 

显示效果:
技术分享

 

2)使用系统播放器打开,默认启动 “full-screen” mode:

async void MainPage_Loaded(object sender, RoutedEventArgs e){    // 读取安装包中,根目录下的视频文件    Windows.Storage.StorageFile file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync("李玉刚.mp4");    await Windows.System.Launcher.LaunchFileAsync(file);                        }

 

01、双击触发 “系统搜索” 和下拉 “通知中心”