访问页面XAML上定义的Panel控件时遇到问题,以这种方式定义XAML:
<UserControl
x:Class="PhoneBook.SilverlightMainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
mc:Ignorable="d" Width="400" Height="300" d:DesignWidth="993" d:DesignHeight="887">
<Grid x:Name="LayoutRoot" />
</UserControl>
该类的定义如下:
public partial class SilverlightMainPage : UserControl
{
public SilverlightMainPage()
{
InitializeComponent();
}
}
我正在尝试以这种方式实例化它:
var silverlightMainPage = new PhoneBook.SilverlightMainPage();
SomeMethod((silverlightMainPage.LayoutRoot);
我感到奇怪的是,当我将点放在对象实例之后时,它实际上将LayoutRoot列为成员之一,但是当我尝试编译应用程序时,它说没有该名称的成员。
有什么想法可以解决?
谢谢
编辑:我还尝试在返回LayoutRoot元素的SilverlightMainPage类上创建一个属性,但是它还说该类不包含Layout根的定义。
最佳答案
您是否有可能尝试从其他程序集中访问SilverlightMainPage.LayoutRoot?在MainPage.g.i.cs文件中,LayoutRoot(以及XAML中定义的所有其他控件)被标记为“内部”,即:
internal System.Windows.Controls.Grid LayoutRoot;
您可能想要尝试创建一个执行FindName(“LayoutRoot”)并返回适当控件的公共(public)属性,而不是内部属性。