2010-06-16 232 views
1

我有一个很大的问题。 我使用Wpf的附加控件。其中之一是Telerik RadWindow 此控件已经模板化。 现在我想创建自定义窗口,将从RadWindow继承,并制作自定义模板,例如。一个基本窗口将包含网格和两个按钮,第二个基本窗口将包含两个网格(主 - 细节)。 问题是模板不支持继承。或许是另一种仅对Winodow内容进行模板化的方法?模板和继承

我的代码,不工作(出现空窗,所以模板不适用)

<Style TargetType="{x:Type local:TBaseRjWindow}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type local:TBaseRjContent}"> 

       <Border Background="{TemplateBinding Background}" 
         BorderBrush="{TemplateBinding BorderBrush}" 
         BorderThickness="{TemplateBinding BorderThickness}"> 

        <Grid Name="mGrid"> 

         <Grid.ColumnDefinitions> 
          <ColumnDefinition /> 
         </Grid.ColumnDefinitions> 
         <Grid.RowDefinitions> 
          <RowDefinition /> 
          <RowDefinition MaxHeight="40" MinHeight="30" /> 

          <RowDefinition MaxHeight="40" MinHeight="30" /> 
          <RowDefinition Height="Auto"  /> 
          <RowDefinition MaxHeight="40" MinHeight="30" /> 
         </Grid.RowDefinitions> 

         <telerik:RadGridView Margin="10,10,10,10" Name="grid" Grid.Row="0" Grid.Column="0"  VerticalAlignment="Stretch" HorizontalAlignment="Stretch" ScrollMode="Deferred" AutoGenerateColumns="False" Width="Auto" > 
         </telerik:RadGridView> 
         <telerik:RadDataPager Grid.Row="1" Grid.Column="0" 
     x:Name="radDataPager" 
     PageSize="50" 
     AutoEllipsisMode="None" 
     DisplayMode="First, Previous, Next, Text" 
     Margin="10,0,10,0"/> 

         <StackPanel Grid.Row="1" Grid.Column="0" Margin="5 5 5 5" HorizontalAlignment="Left" Orientation="Horizontal" Height="20" Width="Auto" VerticalAlignment="Center" > 

          <telerik:RadButton x:Name="btAdd" Margin="5 0 5 0" Content="Dodaj" /> 
          <telerik:RadButton x:Name="btEdit" Margin="5 0 5 0" Content="Edytuj" /> 
          <telerik:RadButton x:Name="btDelete" Margin="5 0 5 0" Content="Usun" /> 
         </StackPanel> 

         <StackPanel Name="addFields" Background="LightGray" Visibility="Collapsed" VerticalAlignment="Top" Grid.Row="2" Grid.Column="0" Width="Auto" Height="Auto" Orientation="Horizontal"> 
          <GroupBox Header="Szczegoly" Margin="2 2 2 2" > 
           <Grid VerticalAlignment="Top" DataContext="{Binding SelectedItem, ElementName=grid}" Name="_gAddFields" Margin="0 0 0 0" Width="Auto" Height="Auto" > 
           </Grid> 
          </GroupBox> 
         </StackPanel> 

         <StackPanel Grid.Row="3" Grid.Column="0" Margin="5 5 5 5" HorizontalAlignment="Right" Orientation="Horizontal" Height="25" Width="Auto" VerticalAlignment="Center" > 
          <telerik:RadButton x:Name="btSave" IsDefault="True" Width="60" Margin="5 0 5 0" Content="Zapisz" /> 
          <telerik:RadButton x:Name="btOK" IsDefault="True" Width="60" Margin="5 0 5 0" Content="Akceptuj" /> 
          <telerik:RadButton x:Name="btCancel" IsCancel="True" Width="60" Margin="5 0 5 0" Content="Anuluj" /> 
         </StackPanel> 
        </Grid> 

       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

请帮

回答

0

您可以使用ContentTemplateWindow。这是一个DataTemplate,它将用于显示设置在Window上的Content