0

別のスレッドで、または Dispatcher クラスを使用して、Windows Phone 8 でプログレスバーを実行することは可能ですか?

ありがとう

4

2 に答える 2

3

プログレスバーを入れるApp.xaml

<ProgressBar IsIndeterminate="True" HorizontalAlignment="Stretch" VerticalAlignment="Top" Loaded="ProgressBar_Loaded" Visibility="Collapsed" />

& 次に、この C# コードを ur に入れますApp.xaml.cs

public partial class App : Application
    {
        // progress bar
        public ProgressBar m_progressBar;
        // some code......


        private void ProgressBar_Loaded(object sender, RoutedEventArgs e)
        {
            m_progressBar = (ProgressBar)sender;
        }
    }

で別のメソッドを定義するclass

public static Class RestMethods
{
   public static void ShowProgress(bool show)
        {
            if (show)
                ((App)Application.Current).m_progressBar.Visibility = Visibility.Visible;
            else
                ((App)Application.Current).m_progressBar.Visibility = Visibility.Collapsed;
        }
}

プログレスバーを表示または非表示にする別の方法があります

それを不平を言うので、それはあなたを凍らせませんUI--->

Dispatcher.BeginInvoke(() => { RestMethods.ShowProgress(true); });    // to show
Dispatcher.BeginInvoke(() => { RestMethods.ShowProgress(false); });    // to hide
于 2013-06-26T14:20:01.480 に答える
0

WindowsPhone の UI コントロールは、UI スレッドからのみ更新できProgressBar、別の (UI ではない) スレッドから更新することはできません。Dispatcher作業スレッドから UI スレッドへの呼び出しをマーシャリングします。

于 2013-06-26T19:53:13.683 に答える