新时尚Windows8开发(8):获取设备信息
2012-09-06 16:35
357 查看
老周的博客http://blog.csdn.net/tcjiaan,转载请注明原作者和出处。
如何获得当前机器上的设备ID,名称以及缩略图,我们需要用到一个类——DeviceInformation类(位于 Windows.Devices.Enumeration命名空间)。
使用方法是这样的:
1、通过DeviceInformation.FindAllAsync静态方法获得一个DeviceInformationCollection集合。
2、将这个集合foreach一下就可以访问其中各成员,这个相信不难明白。
3、DeviceInformation对象的Id属性获取设备的标识符。
4、Name属性获取设备名称。
5、GetThumbnailAsync方法获取设备的缩略图。
看起来是不是很简单呢?下面,我们用一个实例来深化一下。
1、启动VS,新建项目(此处省略38个字)。
2、在主页的根Grid中声明一个ListView,用来显示获取到的设备信息。XAML如下:
4、在XAML文档视图中右击,从弹出的菜单中选择“查看代码”,切换到C#代码视图,然后在重写的OnNavigatedTo方法中加入下面代码:
上面代码我简单说一下,如果熟悉WPF的朋友,相信下面的内容你不用看了。
由于要显示的内容有点复杂,包含缩略图和文本,因此用一个Grid作为ListViewItem的内容。
这个Grid划分为两列,第一列放Image控件,第二列放一个用显示文本信息的TextBlock控件。在TextBlock中,用到了Document对象,两块文本均为Run对象,中间通过一个LineBreak换行。
第一个Run显示设备名称,加粗;第二个Run没有任何修饰,普通文本,显示ID。
下图是运行结果。
如何获得当前机器上的设备ID,名称以及缩略图,我们需要用到一个类——DeviceInformation类(位于 Windows.Devices.Enumeration命名空间)。
使用方法是这样的:
1、通过DeviceInformation.FindAllAsync静态方法获得一个DeviceInformationCollection集合。
2、将这个集合foreach一下就可以访问其中各成员,这个相信不难明白。
3、DeviceInformation对象的Id属性获取设备的标识符。
4、Name属性获取设备名称。
5、GetThumbnailAsync方法获取设备的缩略图。
看起来是不是很简单呢?下面,我们用一个实例来深化一下。
1、启动VS,新建项目(此处省略38个字)。
2、在主页的根Grid中声明一个ListView,用来显示获取到的设备信息。XAML如下:
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> <ListView Name="lvDevices" Margin="10" SelectionMode="None"> <ListView.ItemsPanel> <ItemsPanelTemplate> <WrapGrid Orientation="Horizontal" MaximumRowsOrColumns="3" ItemWidth="420"/> </ItemsPanelTemplate> </ListView.ItemsPanel> </ListView> </Grid>
4、在XAML文档视图中右击,从弹出的菜单中选择“查看代码”,切换到C#代码视图,然后在重写的OnNavigatedTo方法中加入下面代码:
protected async override void OnNavigatedTo(NavigationEventArgs e) { DeviceInformationCollection dcl = await DeviceInformation.FindAllAsync(); this.lvDevices.Items.Clear(); foreach (var item in dcl) { // 项内容布局 Grid itemRoot = new Grid(); itemRoot.Margin = new Thickness(15); itemRoot.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Auto }); itemRoot.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); // 取得图标 DeviceThumbnail thumb = await item.GetThumbnailAsync(); BitmapImage bmp = new BitmapImage(); thumb.Seek(0); bmp.SetSource(thumb); // 显示图像 Image myImage = new Image(); myImage.Width = 80; myImage.Height = 80; myImage.Stretch = Stretch.Uniform; myImage.Margin = new Thickness(10); myImage.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Center; myImage.VerticalAlignment = Windows.UI.Xaml.VerticalAlignment.Top; myImage.Source = bmp; Grid.SetColumn(myImage, 0); itemRoot.Children.Add(myImage); // 显示文本 TextBlock textbl = new TextBlock(); textbl.TextWrapping = TextWrapping.Wrap; Run myRunTitle = new Run(); myRunTitle.Text = item.Name; myRunTitle.FontSize = 20; myRunTitle.FontWeight = FontWeights.Bold; textbl.Inlines.Add(myRunTitle); textbl.Inlines.Add(new LineBreak()); Run runID = new Run() { Text = item.Id }; textbl.Inlines.Add(runID); Grid.SetColumn(textbl, 1); itemRoot.Children.Add(textbl); ListViewItem lvItem = new ListViewItem(); //lvItem.Width = 600; lvItem.Content = itemRoot; // 将项添加到ListView中 this.lvDevices.Items.Add(lvItem); } }
上面代码我简单说一下,如果熟悉WPF的朋友,相信下面的内容你不用看了。
由于要显示的内容有点复杂,包含缩略图和文本,因此用一个Grid作为ListViewItem的内容。
这个Grid划分为两列,第一列放Image控件,第二列放一个用显示文本信息的TextBlock控件。在TextBlock中,用到了Document对象,两块文本均为Run对象,中间通过一个LineBreak换行。
第一个Run显示设备名称,加粗;第二个Run没有任何修饰,普通文本,显示ID。
下图是运行结果。
相关文章推荐
- iOS开发-Object-C获取手机设备信息(UIDevice)
- 新时尚Windows8开发(14):如何选取联系人信息
- Windows Phone 7(WP7)开发 获取设备信息
- Windows Phone 7(WP7)开发 获取设备信息
- iOS开发-Swift获取手机设备信息(UIDevice)
- ionic开发——获取手机设备信息
- ios开发——获取当前设备信息
- IOS 特定于设备的开发:获取额外的设备信息
- iphone开发 UIDevice获取设备信息
- ios开发中获取常用的应用与设备信息
- iOS开发小技巧 获取当前设备/应用程序相关信息
- Windows下USB磁盘开发系列三:枚举系统中U盘、并获取其设备信息
- [转载]iOS开发:获取设备信息
- iOS开发-获取设备型号信息
- ios助手开发系列(四):文件操作系列1 - 获取设备文件信息 AFCFileInfoOpen函数和AFCKeyValueRead函数
- Windows Phone 7(WP7)开发 获取设备信息
- ios开发之获取版本号,部分设备信息
- C#使用Xamarin开发可移植移动应用终章(11.获取设备信息与常用组件,开源一个可开发模版.)
- iOS开发获取设备唯一标识、系统版本、应用版本等信息
- WP8开发系列2:如何获取设备电源信息?电量