【问题标题】:Access Functions and controls on a Silverlight Page访问 Silverlight 页面上的功能和控件
【发布时间】:2014-09-02 07:50:30
【问题描述】:

我是 Silverlight 的新手,但遇到了一些问题。我已经尝试了几个小时来解决这个问题......

我有一个等待来自服务器的数据包的主页。当该数据包到达时,它会在一个模块中进行处理。根据包数据,模块处理一个动作。其中一些操作涉及主页上的子程序。我通过以下方式访问它们:

Dim MainPage As MainPage = App.Current.RootVisual
If strPacketData(1) = "0" Then
MainPage.Do_Sign_In(True, strPacketData(2))
Else
MainPage.Do_Sign_In(False, strPacketData(2))
End If

这很好用。

假设登录有效,主页调用

Me.Content = New Page2

页面切换到第2页

问题是在尝试访问 page2 上的 subs 和控件时,相同的代码不起作用。

如果我尝试:

Dim Page2 As Page2 = App.Current.RootVisual
If strPacketData(1) = "1" Then
Page2.lblCreateError.Opacity = 100
End If

我无法将“SLClient.MainPage”类型的对象转换为“SLClient.Page2”类型。

我从中得到的是 App.Current.RootVisual 设置为 MainPage,但 MainPage 不应该打开...

我尝试将 App.Current.RootVisual 设置为 Page2,但这似乎没有任何作用。

我希望这个问题是由于我对 silverlight 的无知造成的,并且有一个简单的解决方法......

我想我需要做的是检测当前正在显示哪个页面并操作该页面上的控件和函数\子例程。

任何输入将不胜感激。

【问题讨论】:

  • 我知道您已经找到了解决方法,但是您的 RootVisual 是您的 MainPage,并且在其中,您有一个显示 Page2 的内容框架(导航控件),对吗?如果是这样,MainPage 将永远是您的 RootVisual。我所做的是在ContentFrame_Navigated 事件中,我将e.content 保存到一个公共变量中,所以我总是知道当前显示的是哪个页面。
  • 是的,我想这会奏效。 Silverlight 快把我逼疯了……我记得当时我在想这将是多么容易……服务器应用程序!这将是最困难的部分!它必须管理所有连接并处理所有数据库命令并跟踪所有内容!但是...没有,服务器是迄今为止最简单的部分。客户端所要做的就是接收数据包并显示数据。我从没想过我会看到创建异步套接字类比显示图像数组更容易的那一天。 - 很抱歉的咆哮。感谢您的回复! -RW

标签: silverlight


【解决方案1】:

好吧,我终于想通了。或者至少我想出了一个办法。

一旦在内存中创建页面,我就使用字典来存储页面的地址。我还修改了程序,使 rootVisual 成为它自己的网格而不是页面。现在网格将页面加载并清除为子页面。

我不知道... Silverlight 有点古怪。不管怎样,它现在可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    相关资源
    最近更新 更多