2010-06-16 140 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