2011-03-27 73 views
1

我正在嘗試在Silverlight for Windows Embedded 7中開發一個使用C++的應用程序。用於Windows Embedded 7的Silverlight中的多頁應用程序

我能夠用一個按鈕來運行一個簡單的頁面,該按鈕調用另一個函數(簡單的Hello World消息框)。

這裏最大的問題是:如何使一個函數顯示另一個頁面,在另一個XAML文件中定義?我在網上找到的所有例子,甚至在Microsoft資源中,都使用了一個單獨的XAML文件,其中包含所有內容。

在此先感謝!

回答

1

我是一名現在患同樣問題的學生。希望有人來幫助我們解決它。

我搜索了一下,發現SWE不支持FRAME。

我找到了解決這個問題的另一種方法,但我不熟悉C++代碼。 如果你知道如何用C++進行編程,你可以通讀一下並教給我一點嗎? 非常感謝。

您可以搜索「在Silverlight for Windows Embedded中創建自定義用戶控件」。 您將找到Microsoft發佈的PDF文件。 通過這種方式,您可以創建自定義用戶控件來保存「多頁」。 我已經完成了這一步,並且使用我創建的控件,我可以「隱藏」並「顯示」它以實現「多頁」效果。

在我的用戶控件中,我有更多的按鈕讓用戶點擊。但是,從託管用戶控件的主頁,無法檢測到裏面的按鈕。

在PDF教程中,他們教導我們如何調用自定義控件中的方法,但我不瞭解C++代碼。

如果您可以完成用戶控制,請使您的自定義控制功能中的控件正確無誤,請您告訴我?謝謝。

0

要做多頁面應用程序,您需要多個xaml文件。不知道你發現哪些Microsoft教程引用了這些教程,但我正在開發一個具有20多個不同頁面或屏幕的應用程序。您需要在XAML/ExpressionBlend中設計佈局,然後使用事件處理程序和指向XAMl的指針,在C++源代碼中實現視圖。

// ============================================================================ 
// LockDataLogger_Click 
// 
// Description: Event handler implementation 
// 
// Parameters: pSender - The dependency object that raised the click event. 
//    pArgs - Event specific arguments. 
// ============================================================================ 
HRESULT MainPage::LockDataLogger_Click (IXRDependencyObject* pSender, XRMouseButtonEventArgs* pArgs) 
{ 
    HRESULT hr = E_NOTIMPL; 

    if ((NULL == pSender) || (NULL == pArgs)) 
    { 
    hr = E_INVALIDARG; 
    } 
    //m_pDeviceSettings_Lang->m_pYear->Focus(false); 
    if(m_pDeviceSettings_Lang) 
    { 
    m_pDeviceSettings_Lang->m_pYear->SetIsDropDownOpen(false); 
    } 
    m_pLoginScreen->SetVisibility(XRVisibility_Visible); 
    m_pLogin_Password->SetPassword(L""); 
    m_pHome_LoginOptions->SetVisibility(XRVisibility_Collapsed); 
    return hr; 
} 

所以這是一個事件處理程序的實現,當您在設備的主屏幕上爲「鎖定」按鈕計時時。您所需要做的就是相應地命名您的不同頁面/菜單,並基於事件處理程序實現,使用點,設置/更改不同頁面的可見性。非常簡單,希望示例代碼提供一些見解。