2012-02-07 1 views
2

Я использую WPF Toolkit для проекта, в котором мне нужен элемент управления Accordion. Вначале управление отлично работает (есть известная ошибка дизайна, но в противном случае нет проблем), но каждый, кто пытался контролировать, знает, что странный синий фон, который поставляется с ним. Я хочу изменить фон по умолчанию для элемента управления, и я перехожу к Expression Blend, щелкните правой кнопкой мыши экземпляр AccordionItem и перейдите в «Редактировать шаблон» -> «Редактировать копию». Я выбираю применить все приложение по-разному и создает новый шаблон (который должен быть идентичен оригиналу). Элемент управления выглядит точно таким же, но что-то внутри AccordionItem становится невидимым. Нет ошибок, никаких предупреждений. Они просто становятся невидимыми. Когда я нажимаю на свой тег в XAML, я вижу, что они выбраны, точно так же, как если бы они были за чем-то, но это не так! Когда я удаляю (никогда не затронутый) шаблон управления из App.xaml, он возвращается к нормальному состоянию, но я снова вернулся с синим фоном. Вот нетронутый шаблон XAML, созданный Blend:Не удается создать шаблон AccordionItem для Accordion из инструментария WPF

<Style TargetType="{x:Type System_Windows_Controls:AccordionItem}"> 
     <Setter Property="BorderThickness" Value="1"/> 
     <Setter Property="BorderBrush" Value="#FFECECEC"/> 
     <Setter Property="Background" Value="White"/> 
     <Setter Property="Margin" Value="0"/> 
     <Setter Property="Padding" Value="0"/> 
     <Setter Property="HorizontalAlignment" Value="Stretch"/> 
     <Setter Property="VerticalAlignment" Value="Stretch"/> 
     <Setter Property="HorizontalContentAlignment" Value="Left"/> 
     <Setter Property="VerticalContentAlignment" Value="Top"/> 
     <Setter Property="IsTabStop" Value="False"/> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type System_Windows_Controls:AccordionItem}"> 
        <Grid Background="Blue" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" VerticalAlignment="{TemplateBinding VerticalAlignment}"> 
         <Border x:Name="Background" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="1" Padding="{TemplateBinding Padding}"> 
          <Grid> 
           <Grid.ColumnDefinitions> 
            <ColumnDefinition x:Name="cd0" Width="Auto"/> 
            <ColumnDefinition x:Name="cd1" Width="Auto"/> 
           </Grid.ColumnDefinitions> 
           <Grid.RowDefinitions> 
            <RowDefinition x:Name="rd0" Height="Auto"/> 
            <RowDefinition x:Name="rd1" Height="Auto"/> 
           </Grid.RowDefinitions> 
           <System_Windows_Controls_Primitives:AccordionButton x:Name="ExpanderButton" Background="{TemplateBinding Background}" ContentTemplate="{TemplateBinding HeaderTemplate}" Content="{TemplateBinding Header}" Foreground="{TemplateBinding Foreground}" FontWeight="{TemplateBinding FontWeight}" FontStyle="{TemplateBinding FontStyle}" FontStretch="{TemplateBinding FontStretch}" FontSize="{TemplateBinding FontSize}" FontFamily="{TemplateBinding FontFamily}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" IsTabStop="True" IsChecked="{TemplateBinding IsSelected}" Margin="0" Padding="0" Grid.Row="0" Style="{TemplateBinding AccordionButtonStyle}" VerticalAlignment="{TemplateBinding VerticalAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/> 
           <System_Windows_Controls_Primitives:ExpandableContentControl x:Name="ExpandSite" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Foreground="{TemplateBinding Foreground}" FontWeight="{TemplateBinding FontWeight}" FontStyle="{TemplateBinding FontStyle}" FontStretch="{TemplateBinding FontStretch}" FontSize="{TemplateBinding FontSize}" FontFamily="{TemplateBinding FontFamily}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" IsTabStop="False" Margin="0" Percentage="0" RevealMode="{TemplateBinding ExpandDirection}" Grid.Row="1" Style="{TemplateBinding ExpandableContentControlStyle}" VerticalAlignment="{TemplateBinding VerticalAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"> 
            <System_Windows_Controls_Primitives:ExpandableContentControl.Clip> 
             <RectangleGeometry/> 
            </System_Windows_Controls_Primitives:ExpandableContentControl.Clip> 
           </System_Windows_Controls_Primitives:ExpandableContentControl> 
          </Grid> 
         </Border> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

Я что-то упустил? Я не очень привык к шаблонам и стилям, но что-либо из «Редактировать копию» в нетронутом состоянии должно действовать идентично шаблону по умолчанию, но это не так. Я могу безопасно удалить настройки, отличные от шаблона, и он не изменится. Есть что-то с установщиком шаблонов, что делает AccordionItem ненормальным.

ответ

2

Вы просто удаляете строку Background="Blue" Это свойство относится к Grid, которое является первым ребенком Control Template.

 Смежные вопросы

  • Нет связанных вопросов^_^