【问题标题】:Rendering User Control in Windws Phone 7在 Windows Phone 7 中呈现用户控制
【发布时间】:2011-11-30 13:52:42
【问题描述】:
我是 Windows Phone 7 的新手
我想在以下代码中寻求您的帮助:
我正在开发具有多个页面的应用程序。现在我想使用一些用户控件将其放入单个页面中。例如,我的主页将有一个网格中的公司徽标和一个空的第二个网格。第二个网格应该显示用户控件,我将在其中要求用户登录,登录后我想为某些列表框和所有显示另一个用户控件。问题是我不知道如何在 Page 中显示和更改用户控件?就像 asp.net MVC 中的部分页面一样。
是否有任何函数在每次更改用户控件时都会执行,例如 asp.net MVC 有“OnActionExecuting”。我们可以创建一个 UserControl 作为 BaseUserControl 并从中继承每个 UserControl...有可能吗????
抱歉,我对这款 Windows Phone 很陌生。
【问题讨论】:
标签:
c#
xaml
windows-phone-7
user-controls
【解决方案1】:
我会尝试为您提供一些提示和代码来管理您的问题。
第一的。可以做所有你想做的事;)。
如果您只想使用一页(可能不是最佳实践),您可以从代码中更改您的 Ui。如果您在 MainGrid 中拥有包含 MainGrid 和两个网格的页面。您可以使用在 xaml 中设置的 x:name 属性访问每个网格。
示例:
<Grid x:name="MainGrid">
<Grid x:Name="LogoGrid"/>
<Grid x:Name="ContentGrid"/>
</Grid>
您可以在此处添加您的 userControl,如下所示:
var control = new CustomUserControl();
ContentGrid.Children.Clear(); //maybe delete old Children
ContentGrid.Children.Add(control);
处理事件也很容易。只需将它构建到您的 UserControl 中,就像 LoginButton 一样,然后在 ButtonClick 之后用新的 UserControl 替换旧的 UserControl。
【解决方案2】:
您可以通过将用户控件作为child 添加到容器Grid 来简单地更改用户控件。
MyUserControl myusercontrol = new MyUserControl();
mygrid.Children.Add(myusercontrol);
或删除,
mygrid.Children.RemoveAt(0); //if you have just one child control.