自定义SilverLight容器控件
我想创建一个新的Silverlight容器控件,默认情况下该控件应该包含两个按钮,即保存和取消按钮。当用户在主页上使用此控件时,他应该能够在此控件上添加新控件,如文本框、组合框等。此外,默认按钮(如btn_SaveClick和btn_CancelClick)的事件也应可供用户在主页后面的代码中进行编码。是否可以创建这样的控件?自定义SilverLight容器控件,silverlight,xaml,user-controls,Silverlight,Xaml,User Controls,我想创建一个新的Silverlight容器控件,默认情况下该控件应该包含两个按钮,即保存和取消按钮。当用户在主页上使用此控件时,他应该能够在此控件上添加新控件,如文本框、组合框等。此外,默认按钮(如btn_SaveClick和btn_CancelClick)的事件也应可供用户在主页后面的代码中进行编码。是否可以创建这样的控件? PS:我目前正在VS2010上使用SilverLight5 这绝对是可能的。首先,您需要一个从ContentControl派生的类: public class MyCon
PS:我目前正在VS2010上使用SilverLight5 这绝对是可能的。首先,您需要一个从ContentControl派生的类:
public class MyControl : ContentControl ...
然后在XAML资源文件中需要类似的代码:
<!-- MyControl -->
<Style TargetType="me:MyControl">
<Setter Property="Foreground" Value="Black" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Stretch" />
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="VerticalContentAlignment" Value="Stretch" />
<Setter Property="BorderMargin" Value="4,4,4,0" />
<Setter Property="FooterMargin" Value="4,0,4,4" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="me:MyControl">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!-- Content -->
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
<!-- Footer Buttons -->
<Grid x:Name="grdFooter" Grid.Row="1" Background="{StaticResource Footer_Bkg}" Margin="{TemplateBinding FooterMargin}">
<!--Buttons here-->
</Grid>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
最后,要在页面中使用它,您只需要以下内容:
<me:MyControl x:Name="MainPage">
<Grid x:Name="LayoutRoot">
<!--Cool stuff here-->
</Grid>
</me:MyControl>