Win8开发技术点积累(一)
1 Win8 Metro下的MessageBox
private async void No_But_Click(object sender, RoutedEventArgs e)
{
MessageDialog msg = new MessageDialog("你真的要确定退出你的应用吗?", "桂素伟提示");
msg.Commands.Add(new UICommand("是", new UICommandInvokedHandler(this.CommandInvokedHandler)));
msg.Commands.Add(new UICommand("否", new UICommandInvokedHandler(this.CommandInvokedHandler)));
await msg.ShowAsync();
}
private void CommandInvokedHandler(IUICommand command)
{
this.Dispatcher.Invoke(Windows.UI.Core.CoreDispatcherPriority.Normal, (s, a) =>
{
UserName_TB.Text = command.Label;
}, this, null);
}
{
MessageDialog msg = new MessageDialog("你真的要确定退出你的应用吗?", "桂素伟提示");
msg.Commands.Add(new UICommand("是", new UICommandInvokedHandler(this.CommandInvokedHandler)));
msg.Commands.Add(new UICommand("否", new UICommandInvokedHandler(this.CommandInvokedHandler)));
await msg.ShowAsync();
}
private void CommandInvokedHandler(IUICommand command)
{
this.Dispatcher.Invoke(Windows.UI.Core.CoreDispatcherPriority.Normal, (s, a) =>
{
UserName_TB.Text = command.Label;
}, this, null);
}
2 消除AppBar阻挡
后台代码:
<AppBar Name="pb" VerticalAlignment="Bottom" HorizontalContentAlignment="Stretch" Height="88" VerticalContentAlignment="Stretch"
Background="#E5058AE6" Visibility="Collapsed">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="1" Orientation="Horizontal"/>
<StackPanel Orientation="Horizontal"/>
</Grid>
</AppBar>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="1" Orientation="Horizontal"/>
<StackPanel Orientation="Horizontal"/>
</Grid>
</AppBar>
protected override void OnRightTapped(RightTappedRoutedEventArgs e)
{
if (!pb.IsOpen)
{
pb.Visibility = Visibility.Visible;
}
else
{
pb.Visibility = Visibility.Collapsed;
}
base.OnRightTapped(e);
}
{
if (!pb.IsOpen)
{
pb.Visibility = Visibility.Visible;
}
else
{
pb.Visibility = Visibility.Collapsed;
}
base.OnRightTapped(e);
}
3 Image加载图片
img.Source = new BitmapImage(new Uri( "ms-appx:/Images/a.png", UriKind.RelativeOrAbsolute));
4 获取摄像头图片
private async void Button_Click_1(object sender, RoutedEventArgs e)
{
CameraCaptureUI camera = new CameraCaptureUI();
camera.PhotoSettings.CroppedAspectRatio = new Size(1, 1);//比例
camera.PhotoSettings.Format = CameraCaptureUIPhotoFormat.Png;//图片格式
// dialog.PhotoSettings.CroppedSizeInPixels = new Size(100, 150);//固定大小
StorageFile file = await camera.CaptureFileAsync(CameraCaptureUIMode.Photo);
if (file != null)
{
BitmapImage bitmapImage = new BitmapImage();
using (IRandomAccessStream fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read))
{
bitmapImage.SetSource(fileStream);
}
img.Source = bitmapImage;
aaa.Content = file.Path;
}
}
{
CameraCaptureUI camera = new CameraCaptureUI();
camera.PhotoSettings.CroppedAspectRatio = new Size(1, 1);//比例
camera.PhotoSettings.Format = CameraCaptureUIPhotoFormat.Png;//图片格式
// dialog.PhotoSettings.CroppedSizeInPixels = new Size(100, 150);//固定大小
StorageFile file = await camera.CaptureFileAsync(CameraCaptureUIMode.Photo);
if (file != null)
{
BitmapImage bitmapImage = new BitmapImage();
using (IRandomAccessStream fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read))
{
bitmapImage.SetSource(fileStream);
}
img.Source = bitmapImage;
aaa.Content = file.Path;
}
}
5 获取摄像头视频
private async void Button_Click_1(object sender, RoutedEventArgs e)
{
CameraCaptureUI dialog = new CameraCaptureUI();
dialog.VideoSettings.Format = CameraCaptureUIVideoFormat.Mp4;
StorageFile file = await dialog.CaptureFileAsync(CameraCaptureUIMode.Video);
if (file != null)
{
IRandomAccessStream fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
mediaelement.SetSource(fileStream,"video/mp4");
}
}
{
CameraCaptureUI dialog = new CameraCaptureUI();
dialog.VideoSettings.Format = CameraCaptureUIVideoFormat.Mp4;
StorageFile file = await dialog.CaptureFileAsync(CameraCaptureUIMode.Video);
if (file != null)
{
IRandomAccessStream fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
mediaelement.SetSource(fileStream,"video/mp4");
}
}
6 获取摄像头视频到程序中
MediaCapture mediaCaptureMgr;
private async void Button_Click_1(object sender, RoutedEventArgs e)
{
mediaCaptureMgr = new MediaCapture();
await mediaCaptureMgr.InitializeAsync();
Scenario1Video.Source = mediaCaptureMgr;
await mediaCaptureMgr.StartPreviewAsync();
}
private async void Button_Click_1(object sender, RoutedEventArgs e)
{
mediaCaptureMgr = new MediaCapture();
await mediaCaptureMgr.InitializeAsync();
Scenario1Video.Source = mediaCaptureMgr;
await mediaCaptureMgr.StartPreviewAsync();
}
7 获取系统文件
FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.List;//显示文件样式
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;//图片库为查找目标路径
openPicker.FileTypeFilter.Add(".iso"); //查找文件类型
IReadOnlyList<StorageFile> files = await openPicker.PickMultipleFilesAsync();//获取文件
//显示文件
foreach (StorageFile v in files)
{
lv.Items.Add(v.Path);
}
openPicker.ViewMode = PickerViewMode.List;//显示文件样式
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;//图片库为查找目标路径
openPicker.FileTypeFilter.Add(".iso"); //查找文件类型
IReadOnlyList<StorageFile> files = await openPicker.PickMultipleFilesAsync();//获取文件
//显示文件
foreach (StorageFile v in files)
{
lv.Items.Add(v.Path);
}
原文地址: http://www.devdiv.com/Win8开发技术点积累(一)-thread-133322-1-8.html