[英]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設計
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.