- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 UWP 和 XAML 在 C# 中使用 SaveFileDialog 创建一个保存按钮。
我尝试像 this post 一样导入 Microsoft.Win32
说,但它不工作。 SaveFileDialog()
函数告诉我:
Error CS0234 The type or namespace name 'SaveFileDialog' does not exist in the namespace 'Microsoft.Win32' (are you missing an assembly reference?)
这是我的代码:
Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
dlg.FileName = "Document";
dlg.DefaultExt = ".txt";
dlg.Filter = "Text documents (.txt)|*.txt";
我该如何解决这个问题?
最佳答案
与其遵循 UWP 预览时提供的非常古老的建议,不如按照自己的方式阅读当前的 MS Docs 文章,这些文章为许多常见的应用程序范例提供了非常简单的示例。
As a general rule, if you are starting out to develop a new application today, and you have chosen UWP, then you should try to avoid bringing in direct references to the Win32 or the old .Net runtimes. While you can make it work, the backward compatibility is designed to support developers moving legacy code over to .Net Core, for many controls there will already be a native Xaml or WinUI implementation.
看看使用 FileSavePicker到
// Create the dialog, this block is equivalent to OPs original code.
var savePicker = new Windows.Storage.Pickers.FileSavePicker();
savePicker.SuggestedStartLocation =
Windows.Storage.Pickers.PickerLocationId.DocumentsLibrary;
// Dropdown of file types the user can save the file as
savePicker.FileTypeChoices.Add("Plain Text", new List<string>() { ".txt" });
// Default file name if the user does not type one in or select a file to replace
savePicker.SuggestedFileName = "Document";
// Show the dialog for the user to specify the target file
// The dialog will return a reference to the file if they click on "save"
// If the user cancels the dialog, null will be returned
Windows.Storage.StorageFile file = await savePicker.PickSaveFileAsync();
if (file != null)
{
// Prevent updates to the remote version of the file until
// we finish making changes and call CompleteUpdatesAsync.
Windows.Storage.CachedFileManager.DeferUpdates(file);
// write to file
await Windows.Storage.FileIO.WriteTextAsync(file, file.Name);
// Let Windows know that we're finished changing the file so
// the other app can update the remote version of the file.
// Completing updates may require Windows to ask for user input.
Windows.Storage.Provider.FileUpdateStatus status =
await Windows.Storage.CachedFileManager.CompleteUpdatesAsync(file);
if (status == Windows.Storage.Provider.FileUpdateStatus.Complete)
{
System.Diagnostics.Debug.WriteLine("File " + file.Name + " was saved.");
}
else
{
System.Diagnostics.Debug.WriteLine("File " + file.Name + " couldn't be saved.");
}
}
else
{
System.Diagnostics.Debug.WriteLine("User cancelled the save dialog.");
}
如果您刚刚开始使用 UWP,请确保您获得以下应用程序和项目:
关于c# - 即使在导入 Win32 命名空间后,SaveFileDialog 在 UWP 中也不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66191124/
我当前正在从 URL 读取流。并将其保存为客户端上的文件。我知道 Silverlight 4 不支持 SaveFileDialog 上的默认文件名。 有没有人找到解决方法或某种方法将文件名注入(inj
所以我使用 SaveFileDialog 将文件保存到用户选择的位置。保存发生后,用户可以对保存到的文件和文件夹执行他们想要的操作。 但是,用户无法删除或修改该文件夹...它由应用程序保存在内存中,因
我有一个 SaveFileDialog。 当用户点击确定时,我必须检查是否有相似的文件名。 系统一直在做这样的测试,但是我需要添加一个测试是否有类似名称和编号的文件。 例如,如果用户选择了文件名“a”
经过深思熟虑和 Google 搜索后,我下定决心要创建自己的 SaveFileDialog。 但我不知道从哪里开始,因为我在网上没有看到任何东西,我想知道以前是否有人这样做过,我应该研究什么,或者我应
好的,我这里有这个场景。我将一个 URL 指向用户以允许他们开始下载。下载按钮有一个类似 www.mydomainname/files/abc.mp3 的 navigateURL。所以当用户点击它时,
我在 pictureEdit (Devexpress) 上使用上下文菜单,因此当用户右键单击并选择菜单项时,它应该保存文件。但是当 saveDialog 窗口打开时上下文菜单仍然显示。 如何删除该错误
我正在构建一个需要使用 SaveFileDialog 的应用程序。问题是我想限制用户使用 SaveFileDialog 的某些部分(例如,我不希望他们编辑文件名)。我听说使用 Windows 窗体 S
我正在使用 SaveFileDialog 让用户在可移动驱动器上选择目录和文件名。之后我创建该文件,写入它,然后再次关闭它。 此时文件本身未被锁定(可编辑、可删除),但我无法弹出驱动器,因为 Wind
我使用 SaveFileDialog 选择我想要保存文件的路径。我将 InitialDirectory 设置为某个文件夹,但我想将保存位置限制为该文件夹或该文件夹的子文件夹。这可能吗? SaveFil
我想用 默认文件名 从值 DataGridViewCells 创建 SaveFileDialog 到目前为止我已经尝试过了 private void buttonSave_Click(object s
我想保存一个有两个选项(.Png 或 .Jpeg)的图像,所以我只需要显示具有 Png 和 Jpeg 格式 的文件,就像我们选择保存类型时as All Images 它在对话框中显示所有类型的图像。那
在我的 SaveFileDialog 中,过滤器中有多种类型,但是在查看对话框时,如果我选择一个过滤器来查看目录中该类型的文件,我只能看到第一个和最后一个过滤器的文件。 bool save;
我正在使用 SaveFileDialog.SaveFile。如何将其设置为默认(操作系统)驱动器盘符,并将选项限制为仅显示 .BIN 作为文件扩展名? 我尝试阅读 MSDN 上的文档,但我对此很陌生,
private void button2_Click(object sender, EventArgs e) { SaveFileDialog Sdialog = new Sav
我正在用 C# 编写代码,我想更改 SaveFileDialog 中“保存”和“取消”按钮的默认排列。默认排列是“保存”按钮位于“取消”按钮上方。 我想要的是将“取消”按钮放在“保存”按钮的右侧。 我
我试图从 SaveFileDialog 中获取我的路径,但没有我的文件名,以便创建一个 DirectoryInfo 对象 private void btnBrowseCapture_Click(obj
单击按钮时,我的程序会捕获图表的屏幕截图,标题为 chartMain。代码如下: private void buttonScreenshot_Click(object sender, EventArg
我有保存bin文件的代码,但是用户必须选择文件 Stream myStream; SaveFileDialog saveFileDialog1 = new Save
基本上我有一个创建字节数组的程序(通过 richtextbox 手动输入,我希望能够创建一个新文件并通过 SaveFileDialog() 方法将字节保存在该文件中。 我想出的代码是: byte[]
我们的用户有时会使用不允许删除文件的目录。 (文件系统权限删除 和删除子文件夹和文件 都被拒绝)。我们使用 System.Windows.Forms.SaveFileDialog 来允许用户选择目录并
我是一名优秀的程序员,十分优秀!