我在设置超级按钮中创建了一个自定义AlarmSettingsPane,允许用户给出时间并选择音频文件作为闹钟铃声。所以我在设置的魅力中实现了文件选择器。当我单击文件选择器按钮时,它将带我到一个新的全屏我可以选择我的文件,但当我选择一个文件并打开它时,我被定向到我的主屏幕但设置魅力flyout关闭。如何保留AlarmSettingsPane弹出窗口的状态并阻止它以编程方式关闭?与设置一样,弹出窗口应包含与我选择文件之前相同的警报信息。
SettingsPane.Show()打开设置超级按钮,但不会转到我在标准设置弹出窗口内创建的闹钟设置。
如果您有任何想法,请告诉我。感谢
这是我的文件选择器按钮单击事件的代码
private async void PickAFileButton_Click(object sender, RoutedEventArgs e)
{
FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.List;
openPicker.SuggestedStartLocation = PickerLocationId.MusicLibrary;
openPicker.FileTypeFilter.Add(".mp3");
openPicker.FileTypeFilter.Add(".wma");
StorageFile file = await openPicker.PickSingleFileAsync();
if (file != null)
{
// Application now has read/write access to the picked file
CustomSound.Text = file.Name;
}
else
{
CustomSound.Text = "Operation cancelled.";
}
}
答案 0 :(得分:3)
我所做的是在调用Picker之前获取UserControl.Parent的副本并将其本地存储在函数中,这可以防止UI处理程序将其标记为收集,并在选择器返回后,然后选择父IsOpen回到真实。
例如:
private function ()
{
Popup popup = this.Parent as Popup;
Picker Code
popup.IsOpen = true;
}
本书可能不是最好的,但它确实运作良好。
答案 1 :(得分:2)
看看将弹出窗口/弹出窗口的IsLightDismissEnabled属性设置为false是否有效。
答案 2 :(得分:0)
您可以尝试模仿PLM(流程生命周期管理)代码,这样每当您卸载AlarmSettingsPane时,您都会保存页面内容,无论何时加载回来,您都会重建Control的状态。 你可以在VS Split或Grid模板的layoutawarepage中找到一些示例代码..
的问候,