Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
silverlight中的控件模板_Silverlight - Fatal编程技术网

silverlight中的控件模板

silverlight中的控件模板,silverlight,Silverlight,作为一名ASP.Net开发人员,我熟悉母版页作为网页模板。silverlight中是否有与ASP.Net中的母版页等效的机制 因为我不想重复自己创建类似的控件,如: 控制 <UserControl> <Grid> <Button Click="ClickMe" /> <Button Click="CancelMe" /> <TextBlock /> <StackPanel> &

作为一名ASP.Net开发人员,我熟悉母版页作为网页模板。silverlight中是否有与ASP.Net中的母版页等效的机制

因为我不想重复自己创建类似的控件,如:

控制

<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>