4

設定チャームにカスタム AlarmSettingsPane を作成しました。これにより、ユーザーは時間を指定したり、アラーム トーンのオーディオ ファイルを選択したりできます。そこで、設定チャームにファイル ピッカーを実装しました。ファイル ピッカー ボタンをクリックすると、ファイルを選択できる新しいフル スクリーンが表示されますが、ファイルを選択して開くと、ホーム画面に移動します。しかし、設定チャームのフライアウトは閉じられます。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.";
        }
    }      
4

3 に答える 3

3

私がしたことは、ピッカーが呼び出される前に 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 に答える