[源码下载]

与众不同 windows phone (47) - 8.0 其它: 锁屏信息和锁屏背景, 电池状态, 多分辨率, 商店, 内置协议, 快速恢复

作者:webabcd

介绍
与众不同 windows phone 8.0 之 其它

  • 锁屏信息和锁屏背景
  • 电池状态
  • 多分辨率应用
  • 与 Windows Phone 商店相关的操作
  • 系统的内置协议
  • 快速恢复应用
  • App.xaml.cs 的说明
  • manifest 的说明

示例
1、演示如何发送信息到锁屏,以及如何修改锁屏背景
Others/LockScreen.xaml

<phone:PhoneApplicationPage
x:Class="Demo.Others.LockScreen"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
mc:Ignorable="d"
shell:SystemTray.IsVisible="True"> <Grid x:Name="LayoutRoot" Background="Transparent">
<StackPanel> <TextBlock Name="lblMsg" TextWrapping="Wrap" /> <Button Name="btnGotoLockScreen" Content="跳转到锁屏设置界面" Click="btnGotoLockScreen_Click" /> <Button Name="btnSendMessageToLockScreen" Content="发送信息到锁屏" Click="btnSendMessageToLockScreen_Click" /> <Button Name="btnLockScreenBackground" Content="修改锁屏背景" Click="btnLockScreenBackground_Click" /> </StackPanel>
</Grid> </phone:PhoneApplicationPage>

Others/LockScreen.xaml.cs

/*
* 演示如何发送信息到锁屏,以及如何修改锁屏背景
*
*
* 注:在 manifest 中需要增加的内容和说明如下
* 1、搜索并修改“<DeviceLockImageURI />”节点的内容如下:
* <!--锁屏图标:38 * 38 像素,仅支持白色和透明-->
* <DeviceLockImageURI IsRelative="true" IsResource="false">Assets\LockScreen.png</DeviceLockImageURI>
*
* 2、在 <Extensions /> 节点中增加内容如下:
* <!--支持锁屏上显示图标和数字-->
* <Extension TaskID="_default" ExtensionName="LockScreen_Notification_IconCount" ConsumerID="{111DFF24-AA15-4A96-8006-2BFF8122084F}" />
* <!--支持锁屏上显示文本-->
* <Extension TaskID="_default" ExtensionName="LockScreen_Notification_TextField" ConsumerID="{111DFF24-AA15-4A96-8006-2BFF8122084F}" />
* <!--支持锁屏背景的修改-->
* <Extension TaskID="_default" ExtensionName="LockScreen_Background" ConsumerID="{111DFF24-AA15-4A96-8006-2BFF8122084F}" />
*/ using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using Windows.System;
using Windows.Phone.System.UserProfile; namespace Demo.Others
{
public partial class LockScreen : PhoneApplicationPage
{
public LockScreen()
{
InitializeComponent();
} protected override void OnNavigatedTo(NavigationEventArgs e)
{
// 在锁屏设置界面,如果将本 app 设置为背景提供程序,则锁屏界面上会有一个名为“打开应用”的按钮,点击后会通过 /MainPage.xaml?WallpaperSettings=1 启动本 app
// 相关的 UriMapper 参见 MyUriMapper.cs IDictionary<string, string> queryStrings = this.NavigationContext.QueryString;
if (queryStrings.ContainsKey("WallpaperSettings"))
lblMsg.Text = "在锁屏界面启动了本 app,启动的 url 是:" + e.Uri.ToString(); base.OnNavigatedTo(e);
} // 跳转到锁屏设置界面
private async void btnGotoLockScreen_Click(object sender, RoutedEventArgs e)
{
bool success = await Launcher.LaunchUriAsync(new Uri("ms-settings-lock:"));
} // 发送信息到锁屏
private void btnSendMessageToLockScreen_Click(object sender, RoutedEventArgs e)
{
// 锁屏信息来自 tile(StandardTileData, FlipTile, IconicTile, CycleTile 均可)
ShellTile shellTile = ShellTile.ActiveTiles.First();
if (shellTile != null)
{
StandardTileData tile = new StandardTileData();
tile.BackContent = "发送信息到锁屏"; // 需要在锁屏上显示的文本内容(需要在锁屏界面设置本 app 为显示详细状态)
tile.Count = ; // 需要在锁屏上显示的数字内容,图标来自 <DeviceLockImageURI /> 节点的设置(需要在锁屏界面设置本 app 为显示即时状态) shellTile.Update(tile);
}
} // 修改锁屏背景
private async void btnLockScreenBackground_Click(object sender, RoutedEventArgs e)
{
try
{
/*
* 注:
* 在项目根目录下增加 DefaultLockScreen.jpg 文件,用于当 app 成为锁屏背景的实际提供程序却没有设置锁屏背景时,作为锁屏背景的默认图片
* 比如用户在锁屏设置页面选择了本 app 作为锁屏背景的实际提供程序,此时本 app 无法设置锁屏背景,那么锁屏背景图就会被设置为项目根目录下的 DefaultLockScreen.jpg 文件
*/ // 判断本 app 是否是锁屏背景的实际提供程序
bool isProvider = LockScreenManager.IsProvidedByCurrentApplication;
if (!isProvider)
{
// 请求成为锁屏背景的实际提供程序(会弹出一个对话框)
LockScreenRequestResult result = await LockScreenManager.RequestAccessAsync(); // LockScreenRequestResult.Granted - 用户已允许;LockScreenRequestResult.Denied - 用户已拒绝
isProvider = result == LockScreenRequestResult.Granted;
} if (isProvider)
{
// 图片地址支持“ms-appx:///”和“ms-appdata:///Local/”,文件名必须与当前锁屏背景的文件名不同
Uri uri = new Uri("ms-appx:///Assets/AppTile.png", UriKind.Absolute); // 设置当前锁屏的背景图
Windows.Phone.System.UserProfile.LockScreen.SetImageUri(uri); // 获取当前锁屏的背景图的 uri
Uri currentUri = Windows.Phone.System.UserProfile.LockScreen.GetImageUri();
lblMsg.Text = "当前锁屏的背景图的 url: " + currentUri.ToString();
}
else
{
lblMsg.Text = "用户不允许此 app 成为锁屏背景的实际提供程序";
}
}
catch (Exception ex)
{
lblMsg.Text = ex.ToString();
}
}
}
}

2、演示如何获取电池的状态信息
Others/BatteryDemo.xaml.cs

/*
* 演示如何获取电池的状态信息
*/ using System;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Windows.Phone.Devices.Power;
using Microsoft.Phone.Info; namespace Demo.Others
{
public partial class BatteryDemo : PhoneApplicationPage
{
private Battery _battery; public BatteryDemo()
{
InitializeComponent();
} protected override void OnNavigatedTo(NavigationEventArgs e)
{
// 获取电话的默认 Battery 对象
_battery = Battery.GetDefault(); // 获取电池在完全用完之前的所剩时间
TimeSpan remainingTime = _battery.RemainingDischargeTime; // 获取剩余电量的百分比
int remainingChargePercent = _battery.RemainingChargePercent; // 判断当前是电池供电还是外部电源供电
lblMsg.Text = "PowerSource: " + DeviceStatus.PowerSource.ToString();
lblMsg.Text += Environment.NewLine;
lblMsg.Text += "剩余时间:" + string.Format("{0}{1}{2}{3}{4}{5}", remainingTime.Days, "天", remainingTime.Hours, "小时", remainingTime.Minutes, "分");
lblMsg.Text += Environment.NewLine;
lblMsg.Text += "电量百分比:" + remainingChargePercent.ToString() + "%"; // 剩余电量的百分比发生变化时所触发的事件
_battery.RemainingChargePercentChanged += _battery_RemainingChargePercentChanged; base.OnNavigatedTo(e);
} protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
_battery.RemainingChargePercentChanged -= _battery_RemainingChargePercentChanged; base.OnNavigatingFrom(e);
} void _battery_RemainingChargePercentChanged(object sender, object e)
{
// 剩余电量的百分比发生了变化
}
}
}

3、演示如何获取当前分辨率
Others/MultiResolution.xaml

<phone:PhoneApplicationPage
x:Class="Demo.Others.MultiResolution"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
mc:Ignorable="d"
shell:SystemTray.IsVisible="True"> <Grid x:Name="LayoutRoot" Background="Transparent">
<StackPanel> <TextBlock TextWrapping="Wrap">
<Run>1、WVGA - 480 x 800; WXGA - 768 x 1280; 720p - 720 x 1280</Run>
<LineBreak />
<Run>2、大多数情况下,建议使用 WXGA 资产,他们会在其他分辨率下自动缩放且显示良好</Run>
<LineBreak />
<Run>3、如果需要不同分辨率使用不同资产,则必须写代码,参见 code-behind 中判断当前分辨率的代码</Run>
<LineBreak />
<Run>4、适应不同分辨率的启动屏幕,需要在项目的根目录下放置三个启动屏幕文件:SplashScreenImage.Screen-WVGA.jpg, SplashScreenImage.Screen-WXGA.jpg, plashScreenImage.Screen-720p.jpg</Run>
<LineBreak />
<Run>5、如果只想用一个启动屏幕文件的话,则在项目的根目录下放置一个分辨率为 768 x 1280 的名为 SplashScreenImage.jpg 的文件即可(不同分辨率会自动缩放)</Run>
</TextBlock> <TextBlock Name="lblMsg" TextWrapping="Wrap" Margin="0 10 0 0" /> </StackPanel>
</Grid> </phone:PhoneApplicationPage>

Others/MultiResolution.xaml.cs

/*
* 演示如何获取当前分辨率
*/ using System.Windows.Navigation;
using Microsoft.Phone.Controls; namespace Demo.Others
{
public partial class MultiResolution : PhoneApplicationPage
{
public MultiResolution()
{
InitializeComponent();
} protected override void OnNavigatedTo(NavigationEventArgs e)
{
// 获取当前的分辨率
lblMsg.Text = "Resolution: " + ResolutionHelper.CurrentResolution.ToString(); base.OnNavigatedTo(e);
}
} public enum Resolution { WVGA, WXGA, HD720p, Unknown }; public static class ResolutionHelper
{
/// <summary>
/// 480 x 800
/// </summary>
private static bool IsWvga
{
get
{
return App.Current.Host.Content.ScaleFactor == ;
}
} /// <summary>
/// 768 x 1280
/// </summary>
private static bool IsWxga
{
get
{
return App.Current.Host.Content.ScaleFactor == ;
}
} /// <summary>
/// 720 x 1280
/// </summary>
private static bool Is720p
{
get
{
return App.Current.Host.Content.ScaleFactor == ;
}
} public static Resolution CurrentResolution
{
get
{
if (IsWvga)
return Resolution.WVGA;
else if (IsWxga)
return Resolution.WXGA;
else if (Is720p)
return Resolution.HD720p;
else
return Resolution.Unknown;
}
}
}
}

4、演示与 Windows Phone 商店相关的操作
Others/StoreDemo.xaml.cs

/*
* 演示与 Windows Phone 商店相关的操作
*
* 注:
* 应用内购买测试请参考:http://msdn.microsoft.com/zh-cn/library/windowsphone/develop/jj681689
*/ using Microsoft.Phone.Controls;
using Windows.ApplicationModel.Store; namespace Demo.Others
{
public partial class StoreDemo : PhoneApplicationPage
{
public StoreDemo()
{
InitializeComponent(); CurrentAppDemo(); LicenseInformationDemo();
} private void CurrentAppDemo()
{
// 由 Windows 商店创建的此 app 的 id
// CurrentApp.AppId; // 获取此 app 在 Windows 商店中的 URI 地址
// CurrentApp.LinkUri; // 获取当前 app 的 LicenseInformation 对象
// CurrentApp.LicenseInformation; // 请求应用程序内购买完整许可证(wp 目前不可用)
// CurrentApp.RequestAppPurchaseAsync(); // 请求应用程序内购买指定产品的许可证
// CurrentApp.RequestProductPurchaseAsync // 获取此 app 的全部购买记录(wp 目前不可用)
// CurrentApp.GetAppReceiptAsync(); // 获取此 app 的指定产品的购买记录
// CurrentApp.GetProductReceiptAsync(); // 获取此 app 的 ListingInformation 信息
// CurrentApp.LoadListingInformationAsync(); // 获取此 app 的指定关键字的 ListingInformation 信息
// CurrentApp.LoadListingInformationByKeywordsAsync(); // 获取此 app 的指定产品 Id 的 ListingInformation 信息
// CurrentApp.LoadListingInformationByProductIdsAsync(); // 通知商城本 app 已将指定产品 Id 的产品交付给了用户,在调用此方法之前,用户不能再次购买此产品
// CurrentApp.ReportProductFulfillment(); // ListingInformation - 此 app 在 Windows 商店中的相关信息
// AgeRating - app 的年龄分级
// CurrentMarket - app 的当前商店,如:en-us
// Name - app 在当前商店中的名称
// FormattedPrice - app 在当前商店中的价格
// Description - app 在当前商店中的程序说明
// ProductListings - app 在当前商店中的 ProductListing 集合 // ProductListing - app 的产品信息
// ProductId - 产品 ID
// Name - 产品名称
// FormattedPrice - 产品当前市场的格式化后的价格
// ImageUri - 产品关联的图片的 uri
// Description - 产品说明
// Keywords - 搜索关键字
// ProductType - 产品类型
// Unknown - 未知
// Durable - 耐用型:用户购买后由用户永远所有的产品)
// Consumable - 消费型:可以购买、使用(消耗)和再度购买的产品
// Tag - 自定义标记字符串
} private void LicenseInformationDemo()
{
// 当前 app 的许可证信息
LicenseInformation licenseInformation = CurrentApp.LicenseInformation; // 许可证ok则为true,否则无许可证或许可证过期则为false
// licenseInformation.IsActive; // 是否是试用许可证
// licenseInformation.IsTrial; // 许可证的到期时间
// licenseInformation.ExpirationDate; // 许可证状态发生变化时所触发的事件
// licenseInformation.LicenseChanged; // 获取此 app 相关的 ProductLicenses 集合
// licenseInformation.ProductLicenses; // ProductLicense - 产品许可证
// ProductId - 产品 ID
// IsActive - 此产品许可证ok则为true,否则无此产品许可证或此产品许可证过期则为false
// IsConsumable - 产品类型是否是消费型
// ExpirationDate - 此产品许可证的到期时间
}
}
}

5、演示系统的内置协议(uri 关联)
Others/ReservedProtocol.xaml.cs

/*
* 演示系统的内置协议(uri 关联)
*
*
* 注:系统保留的文件类型和保留的协议类型详见如下链接
* http://msdn.microsoft.com/zh-cn/library/windowsphone/develop/jj207065
*/ using System;
using System.Windows;
using Microsoft.Phone.Controls;
using Windows.System; namespace Demo.Others
{
public partial class ReservedProtocol : PhoneApplicationPage
{
public ReservedProtocol()
{
InitializeComponent();
} private async void btnAirplane_Click(object sender, RoutedEventArgs e)
{
// 跳转到“飞行模式设置”页
bool success = await Launcher.LaunchUriAsync(new Uri("ms-settings-airplanemode:"));
} private async void btnBluetooth_Click(object sender, RoutedEventArgs e)
{
// 跳转到“蓝牙设置”页
bool success = await Launcher.LaunchUriAsync(new Uri("ms-settings-bluetooth:"));
} private async void btnCellular_Click(object sender, RoutedEventArgs e)
{
// 跳转到“手机网络设置”页
bool success = await Launcher.LaunchUriAsync(new Uri("ms-settings-cellular:"));
} private async void btnWiFi_Click(object sender, RoutedEventArgs e)
{
// 跳转到“WiFi设置”页
bool success = await Launcher.LaunchUriAsync(new Uri("ms-settings-wifi:"));
} private async void btnLocation_Click(object sender, RoutedEventArgs e)
{
// 跳转到“定位设置”页
bool success = await Launcher.LaunchUriAsync(new Uri("ms-settings-location:"));
} private async void btnEmailAccount_Click(object sender, RoutedEventArgs e)
{
// 跳转到“电子邮件+账户设置”页
bool success = await Launcher.LaunchUriAsync(new Uri("ms-settings-emailandaccounts:"));
} private async void btnLockScreen_Click(object sender, RoutedEventArgs e)
{
// 跳转到“锁屏设置”页
bool success = await Launcher.LaunchUriAsync(new Uri("ms-settings-lock:"));
} private async void btnCallTo_Click(object sender, RoutedEventArgs e)
{
// 拨打指定的电话号码
bool success = await Launcher.LaunchUriAsync(new Uri("tel:1391234567"));
// bool success = await Launcher.LaunchUriAsync(new Uri("callto:1391234567"));
} private async void btnHttp_Click(object sender, RoutedEventArgs e)
{
// 用浏览器打开一个指定的 http 链接
bool success = await Launcher.LaunchUriAsync(new Uri("http://webabcd.cnblogs.com/"));
} private async void btnMailTo_Click(object sender, RoutedEventArgs e)
{
// 向指定的地址发送邮件
bool success = await Launcher.LaunchUriAsync(new Uri("mailto:aaa@xxx.com"));
} private async void btnMarketplaceDetail_Click(object sender, RoutedEventArgs e)
{
// 打开指定 app 在商店中的详细页
bool success = await Launcher.LaunchUriAsync(new Uri("zune:navigate?appid=02adaaff-ad55-42b4-9ca1-fd4d1dadd32a"));
} private async void btnMarketplaceReview_Click(object sender, RoutedEventArgs e)
{
// 在商店中评论指定的 app
bool success = await Launcher.LaunchUriAsync(new Uri("zune:reviewapp?appid=02adaaff-ad55-42b4-9ca1-fd4d1dadd32a"));
} private async void btnMarketplaceSearch_Click(object sender, RoutedEventArgs e)
{
// 在商店中搜索 app(支持按关键字和发行商搜索)
bool success = await Launcher.LaunchUriAsync(new Uri("zune:search?keyword=&publisher=webabcd&contenttype=app"));
}
}
}

6、演示什么是快速恢复应用,以及如何设置快速恢复应用
Others/FastResume.xaml

<phone:PhoneApplicationPage
x:Class="Demo.Others.FastResume"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
mc:Ignorable="d"
shell:SystemTray.IsVisible="True"> <Grid x:Name="LayoutRoot" Background="Transparent">
<StackPanel> <TextBlock TextWrapping="Wrap">
<Run>1、什么是快速恢复应用:当你点击 tile 启动了 app 后,再回到开始屏幕,再点击 tile 可以直接恢复应用而不是重新启动应用(wp8 新特性)</Run>
<LineBreak />
<Run>2、如何实现快速恢复应用:在 manifest 中的 DefaultTask 节点中增加 ActivationPolicy="Resume"</Run>
</TextBlock> </StackPanel>
</Grid> </phone:PhoneApplicationPage>

7、App.xaml.cs 的说明
Others/AppXamlCs.xaml

<phone:PhoneApplicationPage
x:Class="Demo.Others.AppXamlCs"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
mc:Ignorable="d"
shell:SystemTray.IsVisible="True"> <Grid Background="Transparent">
<StackPanel> <TextBlock x:Name="lblMsg" TextWrapping="Wrap">
<Run>关于 App.xaml.cs 的说明,参见它的注释就好,写得很清楚了</Run>
<LineBreak />
<Run>注意:导航过程中发生异常会通过 RootFrame_NavigationFailed 捕获,其他未处理异常会通过 Application_UnhandledException 捕获</Run>
</TextBlock> </StackPanel>
</Grid> </phone:PhoneApplicationPage>

8、manifest 的说明
Others/Manifest.xaml

<phone:PhoneApplicationPage
x:Class="Demo.Others.Manifest"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
mc:Ignorable="d"
shell:SystemTray.IsVisible="True"> <Grid Background="Transparent">
<StackPanel> <TextBlock x:Name="lblMsg" TextWrapping="Wrap">
<Run>关于 manifest 的说明,详见 WMAppManifest.xml</Run>
<LineBreak />
<Run>1、应用程序 UI: UI 相关的设置</Run>
<LineBreak />
<Run>2、功能: 勾选你需要用到的功能,有时提示无权限可能就是相关的功能没有勾选</Run>
<LineBreak />
<Run>3、要求: 勾选你程序的硬件要求,可以防止不符合要求的设备安装</Run>
<LineBreak />
<Run>4、打包: 打包就是打包了</Run>
</TextBlock> </StackPanel>
</Grid> </phone:PhoneApplicationPage>

OK
[源码下载]

与众不同 windows phone (47) - 8.0 其它: 锁屏信息和锁屏背景, 电池状态, 多分辨率, 商店, 内置协议, 快速恢复的更多相关文章

  1. 与众不同 windows phone (38) - 8.0 关联启动: 使用外部程序打开一个文件或URI, 关联指定的文件类型或协议

    [源码下载] 与众不同 windows phone (38) - 8.0 关联启动: 使用外部程序打开一个文件或URI, 关联指定的文件类型或协议 作者:webabcd 介绍与众不同 windows ...

  2. 与众不同 windows phone (43) - 8.0 相机和照片: 镜头的可扩展性, 图片的可扩展性, 图片的自动上传扩展

    [源码下载] 与众不同 windows phone (43) - 8.0 相机和照片: 镜头的可扩展性, 图片的可扩展性, 图片的自动上传扩展 作者:webabcd 介绍与众不同 windows ph ...

  3. 与众不同 windows phone (34) - 8.0 新的控件: LongListSelector

    [源码下载] 与众不同 windows phone (34) - 8.0 新的控件: LongListSelector 作者:webabcd 介绍与众不同 windows phone 8.0 之 新的 ...

  4. 与众不同 windows phone (35) - 8.0 新的启动器: ShareMediaTask, SaveAppointmentTask, MapsTask, MapsDirectionsTask, MapDownloaderTask

    [源码下载] 与众不同 windows phone (35) - 8.0 新的启动器: ShareMediaTask, SaveAppointmentTask, MapsTask, MapsDirec ...

  5. 与众不同 windows phone (36) - 8.0 新的瓷贴: FlipTile, CycleTile, IconicTile

    [源码下载] 与众不同 windows phone (36) - 8.0 新的瓷贴: FlipTile, CycleTile, IconicTile 作者:webabcd 介绍与众不同 windows ...

  6. 与众不同 windows phone (37) - 8.0 文件系统: StorageFolder, StorageFile, 通过 Uri 引用文件, 获取 SD 卡中的文件

    [源码下载] 与众不同 windows phone (37) - 8.0 文件系统: StorageFolder, StorageFile, 通过 Uri 引用文件, 获取 SD 卡中的文件 作者:w ...

  7. 与众不同 windows phone (39) - 8.0 联系人和日历

    [源码下载] 与众不同 windows phone (39) - 8.0 联系人和日历 作者:webabcd 介绍与众不同 windows phone 8.0 之 联系人和日历 自定义联系人存储的增删 ...

  8. 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能

    [源码下载] 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能 作者:webabcd 介绍与众不同 windows ...

  9. 与众不同 windows phone (41) - 8.0 相机和照片: 通过 AudioVideoCaptureDevice 捕获视频和音频

    [源码下载] 与众不同 windows phone (41) - 8.0 相机和照片: 通过 AudioVideoCaptureDevice 捕获视频和音频 作者:webabcd 介绍与众不同 win ...

随机推荐

  1. Windows调试学习笔记:(二)WinDBG调试.NET程序示例

    好不容易把环境打好了,一定要试试牛刀.我创建了一个极其简单的程序(如下).让我们期待会有好的结果吧,阿门! using System; using System.Collections.Generic ...

  2. 【网络——Linux】——IPMI详细介绍【转】

    一.IPMI含义 智能平台管理接口(IPMI:Intelligent Platform Management Interface)是一项应用于服务器管理系统设计的标准,由Intel.HP.Dell和N ...

  3. 多个App间传递数据

    平台:Android两个App:A,B:需求:在A中点击一个按钮后,启动B并把数据从A传递到B: 代码: App A: MainActivity.java中添加: Button btn2 = (But ...

  4. Linux64位服务器编译安装MySQL5.6(CentOS6.4)

    首先到MySQL官网下载MySQL最新版(目前是mysql-5.6.12)上传到服务器上,下面说一下详细的安装过程. 安装依赖包,可以在线更新也可以配置本地源(CentOS本地源配置)yum -y i ...

  5. Hibernate缓存原理与策略 Hibernate缓存原理:

    Hibernate缓存原理: 对于Hibernate这类ORM而言,缓存显的尤为重要,它是持久层性能提升的关键.简单来讲Hibernate就是对JDBC进行封装,以实现内部状态的管理,OR关系的映射等 ...

  6. Swift 字符与字符串

    Swift 的 String 和 Character 类型

  7. How to Debug Enterprise Portal Code in Dynamics AX 2009

    转载 To set up debugging for pages1. Log into the server that is running the AOS.2. Open the Microsoft ...

  8. 超时时间已到。在操作完成之前超时时间已过或服务器未响应。 (.Net SqlClient Data Provider)

    超时时间已到.在操作完成之前超时时间已过或服务器未响应. (.Net SqlClient Data Provider) 在做一个小东西的时候出现了这个问题,就是使用VS调试几次项目后,使用SQL Se ...

  9. Oracle数据库说明

  10. CreateProcessAsUser,C#写的windows服务弹框提示消息或者启动子进程

    服务(Service)对于大家来说一定不会陌生,它是Windows 操作系统重要的组成部分.我们可以把服务想像成一种特殊的应用程序,它随系统的“开启-关闭”而“开始-停止”其工作内容,在这期间无需任何 ...