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
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· C# 13 中的新增功能实操
· Ollama本地部署大模型总结
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(4)
· langchain0.3教程:从0到1打造一个智能聊天机器人
· 用一种新的分类方法梳理设计模式的脉络