Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何更改启动屏幕上的Textblock值?_C#_Windows Phone 7 - Fatal编程技术网

C# 如何更改启动屏幕上的Textblock值?

C# 如何更改启动屏幕上的Textblock值?,c#,windows-phone-7,C#,Windows Phone 7,我正在尝试为我的应用程序制作一个动画启动屏幕。我有我的主页,在那里我显示一个弹出窗口,其中有一个动画和一个文本块。我想更改文本块的文本以显示加载状态,但无法更改。有什么想法吗 主页代码 飞溅xaml 像这样的怎么样: preloader.WorkerReportsProgress = true; preloader.ProgressChanged += (sender, e) => { this.Dispatcher.BeginInvoke(() =>

我正在尝试为我的应用程序制作一个动画启动屏幕。我有我的主页,在那里我显示一个弹出窗口,其中有一个动画和一个文本块。我想更改文本块的文本以显示加载状态,但无法更改。有什么想法吗

主页代码 飞溅xaml
像这样的怎么样:

preloader.WorkerReportsProgress = true;
preloader.ProgressChanged += (sender, e) =>
    {
        this.Dispatcher.BeginInvoke(() =>
            (this.splashPop.Child as Splash).Progress = e.ProgressPercentage.ToString());
    };
在Splash.xaml.cs中,您将看到以下内容:

public string Progress
{
    get { return preloader_percentage.Text; }
    set { preloader_percentage.Text = value; }
}
在MainWindow.xaml.cs中,您可以将代码更改为如下所示:

preloader.WorkerReportsProgress = true;
preloader.ProgressChanged += (sender, e) =>
    {
        this.Dispatcher.BeginInvoke(() =>
            (this.splashPop.Child as Splash).Progress = e.ProgressPercentage.ToString());
    };
然后在worker方法中,需要调用预加载程序。方法多次。据我所知,应该这样做


注意:这里有很多设计地雷。我建议让这段代码开始工作,以后您可以使用它,使其更干净、更易于维护。

我现在无法访问pastebin.com,但您是否绑定到视图模型?如果是这样,这个视图模型是否正在更新相关属性并触发NotifyPropertyChanged事件?您似乎正在后台线程上执行所有处理。如果是这样,您需要更新任何UI元素,例如UI线程上的文本框。我在你的示例中看不到任何与文本框有关的代码???它不在粘贴中,因为它不起作用。我试图在App.xaml中使用一个全局变量,并在后台工作程序中更改它的值,在后台工作程序中更新我的文本块。哪个ofc是一个糟糕的开始。我不想为此使用ModeView,因为它只是一个变量,当你启动应用程序时,你只会在几秒钟内看到它。这将有助于查看你用来尝试和更新UI的代码,无论它是否工作。我只需要一个简单的方法来解决这个问题。我的代码不重要。我应该如何在弹出窗口中获取文本块?this.splaspoup没有名为Progress的方法或属性。很抱歉,它实际上是您的Splash对象-您需要向Splash对象添加一个Progress属性来更改进度文本。我来编辑。
preloader.WorkerReportsProgress = true;
preloader.ProgressChanged += (sender, e) =>
    {
        this.Dispatcher.BeginInvoke(() =>
            (this.splashPop.Child as Splash).Progress = e.ProgressPercentage.ToString());
    };