建议的开始位置与实际开始位置

SuggestedStartLocation vs ActualStartLocation

UWP中设置文件夹打开FileOpenPicker时没有ActualStartLocation这样的东西,这就是我提问的原因。有一个 SuggestedStartLocation,但 Microsoft site 明确指出:

"The SuggestedStartLocation is not always used as the start location for the file picker. To give the user a sense of consistency, the file picker remembers the last location that the user navigated to and will generally start at that location."

SuggestedStartLocation 会记住您所在的位置,并且每次都会继续打开同一个文件夹。例如,将此代码添加到 UWP 项目中的按钮单击事件:

FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.Thumbnail;
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
openPicker.FileTypeFilter.Add(".jpg");
StorageFile file = await openPicker.PickSingleFileAsync();
if (file != null) {
    TextBlock1.Text = "Selected Photo: " + file.Name;
} else {
    TextBlock1.Text = "Operation cancelled.";
}

现在运行程序和select一张图片。

关闭程序更改代码以使用 MusicLibrary 而不是 PicturesLibrary。

运行 再次运行该程序,当您单击该按钮时,您将返回到图片库,即使您要求查看音乐也是如此。

有没有办法覆盖它并强制文件选择器开始的位置? (即:ActualStartLocation)

我正在尝试制作一个应用程序,用户 select 有一张图片和一个音乐文件,如果图片选择器总是在图片文件夹中打开并且音乐选择器总是在音乐文件夹。

如您所知,这是设计使然。

"The SuggestedStartLocation is not always used as the start location for the file picker. To give the user a sense of consistency, the file picker remembers the last location that the user navigated to and will generally start at that location."

当您使用 FileOpenPicker 选择文件时, PickerHost.exe 将被午餐。 PickerHost 是系统应用程序。并且它会记录你最近访问过的位置。您无法更改申请中的记录。目前,还没有"ActualStartLocation" 属性 可以实现你想要的。如果您确实需要此功能,欢迎您在 UserVoice 上提问。