Шаблоны и наследование - PullRequest
1 голос
/ 16 июня 2010

У меня большая проблема.Я использую дополнительные элементы управления для 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>

Пожалуйста, помогите

1 Ответ

0 голосов
/ 16 июня 2010

Вы можете использовать ContentTemplate для Window.Это DataTemplate, который будет использоваться для отображения Content, установленного на Window.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...