簡體   English   中英

Silverlight 3.0 - 如何從UserControl訪問MainPage控件值

[英]Silverlight 3.0 - How to access a MainPage control value from an UserControl

我需要從MainPage檢索一些控件值到UserControl。 在這個UserControl中,我需要能夠獲取Frame.ActualWidth和Frame.ActualHeight值(在這種情況下,Frame元素在MainPage中,UserControl通過xaml加載到MainPage的Grid中)。 有人有樣品嗎? 謝謝

Josimari Martarelli ESLSistemasLogísticosSilverlightUI設計

jmartarelli@logfacil.com.br

MainPage m =(MainPage)Application.Current.RootVisual;

在這樣的實例中,我經常會使用我的MainPage類對其自身進行公共靜態引用,Instance。 我將它在構造函數中設置為“this”,然后當我需要從用戶控件中向下訪問MainPage時,我將調用類似於:

MainPage.Instance。

首先,我在App類中創建了一個靜態方法,該方法遍歷父項的層次結構,直到找到基於名稱的匹配項。 這不僅可以用於MainPage。 層次結構中的所有內容都應該從FrameworkElement類派生。

    public static FrameworkElement GetParentByName(FrameworkElement currentPage, 
string ParentName)
    {

        FrameworkElement fe = (FrameworkElement)currentPage.Parent;

        // Walk your way up the chain of Parents until we get a match
        while(fe.GetType().Name != ParentName)
            fe = (FrameworkElement)fe.Parent;

        return fe;

    }

然后使用這個我只是調用類似的東西:

MainPage m =(MainPage)App.GetParentByName(this,“MainPage”);

如果您使用的是登錄頁面,則必須使用登錄頁面進行投射。

Login lp = (Login)Application.Current.RootVisual;
您可以使用在登錄頁面中創建的參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM