4

我在设置魅力中创建了一个自定义 AlarmSettingsPane,它允许用户给出时间并选择用于警报音的音频文件。所以我在设置魅力中实现了文件选择器。当我单击文件选择器按钮时,它会将我带到一个新的全屏,在那里我可以选择我的文件,但是当我选择一个文件并打开它时,被定向到我的主屏幕但是设置魅力弹出窗口被关闭。如何保留 AlarmSettingsPane 浮出控件的状态并防止它以编程方式关闭?就像设置弹出窗口应该包含与我选择文件之前相同的关于警报的 imfo。

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.";
        }
    }      
4

3 回答 3

3

我所做的是在调用 Picker 之前获取 UserControl.Parent 的副本并将其本地存储在函数中,这可以防止 UI 处理程序将其标记为收集,并且在选择器返回后,然后选择父 IsOpen 回到 true .

例如:

private function ()
{
    Popup popup = this.Parent as Popup;

    Picker Code

    popup.IsOpen = true;
}

它可能不是书中最好的,但它确实运作良好。

于 2013-03-05T13:51:02.440 回答
2

查看将弹出/弹出窗口的 IsLightDismissEnabled 属性设置为 false 是否可以解决问题。

于 2012-11-23T14:41:36.083 回答
0

您可以尝试模仿 PLM(流程生命周期管理)代码,以便在卸载 AlarmSettingsPane 时保存页面内容,并在重新加载时重建控件的状态。您可以在 VS Split 或 Grid 模板的 layoutawarepage 中找到一些示例代码。

问候,

于 2012-11-24T12:02:19.593 回答