silverlight中的控件模板
作为一名ASP.Net开发人员,我熟悉母版页作为网页模板。silverlight中是否有与ASP.Net中的母版页等效的机制 因为我不想重复自己创建类似的控件,如: 控制silverlight中的控件模板,silverlight,Silverlight,作为一名ASP.Net开发人员,我熟悉母版页作为网页模板。silverlight中是否有与ASP.Net中的母版页等效的机制 因为我不想重复自己创建类似的控件,如: 控制 <UserControl> <Grid> <Button Click="ClickMe" /> <Button Click="CancelMe" /> <TextBlock /> <StackPanel> &
<UserControl>
<Grid>
<Button Click="ClickMe" />
<Button Click="CancelMe" />
<TextBlock />
<StackPanel>
<!-- content start here -->
<Rectangle />
<!-- content end here -->
</StackPanel>
<Grid>
</UserControl>
控制B
<UserControl>
<Grid>
<Button Click="ClickMe" />
<Button Click="CancelMe" />
<TextBlock />
<StackPanel>
<!-- content start here -->
<Canvas />
<!-- content end here -->
</StackPanel>
<Grid>
</UserControl>
没有等价物,因为这个概念不适用于Silverlight——就像它不适用于桌面应用程序一样 Silverlight应用程序的视觉外观是通过控件的层次结构实现的。布局可以随时修改,更新将反映在下一次渲染过程中(这实际上是对Windows窗体的改进) 为了正确地实现您的示例,您只需创建一个UserControl,其中包含ControlA和ControlB共有的所有内容,并根据需要修改其StackPanel的内容——可能在其构造函数中,或者响应其他控件引发的事件。这完全取决于你何时以及多久做一次
一旦掌握了诀窍,您会发现使用Silverlight创建动态和可用的界面比使用任何传统web技术的组合都要容易得多。没有等价物,因为这个概念不适用于Silverlight,就像它不适用于桌面应用程序一样 Silverlight应用程序的视觉外观是通过控件的层次结构实现的。布局可以随时修改,更新将反映在下一次渲染过程中(这实际上是对Windows窗体的改进) 为了正确地实现您的示例,您只需创建一个UserControl,其中包含ControlA和ControlB共有的所有内容,并根据需要修改其StackPanel的内容——可能在其构造函数中,或者响应其他控件引发的事件。这完全取决于你何时以及多久做一次
一旦掌握了窍门,您会发现使用Silverlight创建动态和可用的界面比使用任何传统web技术的组合都要容易得多。您可以使用
ItemsControl
来创建这种特定的模板。ItemsControl
是一种控件
,可以包含多个项,例如字符串、对象或其他元素。如下图所示,转换XAML。记住从代码隐藏中的ItemsControl
而不是UserControl
派生类
<ItemsControl>
<ItemsControl.Template>
<ControlTemplate TargetType="ItemsControl">
<Grid>
<Button Click="ClickMe"/>
<Button Click="CancelMe"/>
<TextBlock/>
<ItemsPresenter/>
</StackPanel>
</ControlTemplate>
</ItemsControl.Template>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
对于这种特定类型的模板,可以使用
ItemsControl
。ItemsControl
是一种控件
,可以包含多个项,例如字符串、对象或其他元素。如下图所示,转换XAML。记住从代码隐藏中的ItemsControl
而不是UserControl
派生类
<ItemsControl>
<ItemsControl.Template>
<ControlTemplate TargetType="ItemsControl">
<Grid>
<Button Click="ClickMe"/>
<Button Click="CancelMe"/>
<TextBlock/>
<ItemsPresenter/>
</StackPanel>
</ControlTemplate>
</ItemsControl.Template>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>