2012-07-13 4 views
0

Я хочу создать новый элемент управления Silverlight Container Control, элемент управления должен содержать две кнопки по умолчанию: кнопка «Сохранить» и «Отмена». Когда пользователь использует этот элемент управления на главной странице, он должен иметь возможность добавлять к этому элементу новые элементы управления, такие как текстовое поле, комбо и т. Д. Также для пользователей должны быть доступны кнопки с настройками по умолчанию, такие как btn_SaveClick и btn_CancelClick. за главной страницей. Возможно ли создание такого контроля?
PS: В настоящее время я использую SilverLight5 на VS2010.Пользовательский контроль контейнера SilverLight

ответ

0

Это определенно возможно. Прежде всего, нужен класс, производный от 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> 
Смежные вопросы