【问题标题】:Templates and inheritance模板和继承
【发布时间】:2010-06-16 14:38:04
【问题描述】:

我有一个大问题。 我对 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>

请帮忙

【问题讨论】:

    标签: wpf


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-02
      • 2013-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多