c#wpf中的MessageDialog
我买了本书《抬头看c》。我使用的是Windows10和VS2015,所以只有WPF,但这本书是为XAML设计的 第11章要求使用这些名称空间:使用Windows.System、Windows.Storage、Windows.UI.Popups,但我在WPF中找不到它们,这些名称空间用于:MessageDialog、UIcommand、IStorageFile、FileOpenPicker,有没有办法将它们添加到WPF项目 //编辑 谢谢你的帮助,我已经为UWP修补了VS,它很有效。 但现在我的问题是缩放: 页面大小设置为800x600,以下是列:c#wpf中的MessageDialog,c#,wpf,xaml,namespaces,C#,Wpf,Xaml,Namespaces,我买了本书《抬头看c》。我使用的是Windows10和VS2015,所以只有WPF,但这本书是为XAML设计的 第11章要求使用这些名称空间:使用Windows.System、Windows.Storage、Windows.UI.Popups,但我在WPF中找不到它们,这些名称空间用于:MessageDialog、UIcommand、IStorageFile、FileOpenPicker,有没有办法将它们添加到WPF项目 //编辑 谢谢你的帮助,我已经为UWP修补了VS,它很有效。 但现在我的问
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
标题在第一行,内容在第二行,按钮(保存、加载)在第三行,看起来它不存在:
在WPF中,它起了作用/ 就我而言,这些类只能在通用Windows平台上工作。您可以尝试创建UWP应用程序,或者您需要的是WPF?Angelin N.是正确的,这些类在WPF中不可用(至少在没有重大黑客攻击的情况下是不可用的)。你需要创建一个UWP项目来运行书中的例子,听起来像 不过,您要查找的大部分内容确实存在于WPF中。在UWP中你能做的事情很少,而在WPF中你做不到。例如,
System.Windows.MessageBox
提供消息框System.IO.File
允许您访问所有文件IO(相当于IStorageFile
)。文件选择器可通过Microsoft.Win32.FileDialog获得。这两个平台之间有许多等价物
如果您希望为Windows7制作应用程序,则需要使用WPF。但是,如果您的应用程序只能在Windows 10或更高版本上运行,则UWP可能是最佳选择。对于异步对话框,请尝试以下操作:
using System.Threading.Tasks;
using System;
using System.Windows;
// 1. call method with message window
ShowMyDialogWindow();
// 2. use async and await with Task, create your message window here.
public async void ShowMyDialogWindow()
{
MessageBoxResult result= await Task.Run(() => MessageBox.Show("Arre you happy?",
"My window name", MessageBoxButton.YesNoCancel));
switch (result)
{
case MessageBoxResult.None:
break;
case MessageBoxResult.Yes:
// do something
break;
case MessageBoxResult.No:
// do something
break;
default:
break;
}
// This line will be executed after windows closed you can use it for
// something (close resource, stop timer ...)
DoSomeThingHereToo();
}
// message window do not block your app, app will running other task.
我需要它们的原因主要是异步对话框,我曾尝试使用MessageBox.show()实现异步,但没有成功。你能更清楚地说明你要做什么吗?异步编程在WPF中绝对是可能的。通常需要使用Dispatcher对象。例如,Dispatcher.InvokeAsync将允许您以异步方式执行几乎任何类型的操作,包括ShowDialog。