2009-08-25 4 views
0

В настоящее время я ссылаюсь на тему Aero в своем файле App.xml. В файле main.xml я использую расширители для отображения содержимого в приложении с изменяемой шириной. (В этом примере я ограничил ширину до 500)Как ссылаться на круг Toggle Button и отменять вертикальное выравнивание Aero theme Expander?

Содержимое заголовка расширителя обычно будет коротким, но оно допускает до 500 символов. В зависимости от размера окна (по умолчанию 600 пикселей) содержимое может обертываться (тем самым растягивая заголовок расширителя вниз). Это хорошо, но кнопка переключения (стрелка circle/w) установлена ​​для VerticalAlignment = center из того, что я могу сказать.

Мне нужен способ переопределить это вертикальное выравнивание в стиле без повторного создания шаблона Aero для Expander. Я просто наклоняю, кажется, ссылаюсь на круг и объекты стрелки. Я тоже попытался перевернуть Toggle Button, не повезло.

Как вы можете видеть ниже, я могу переопределить некоторые аспекты Aero Expander. Мне просто нужно немного подтолкнуть, чтобы получить объекты Toggle Button Circle и Arrow для изменения VerticalAlignment.

Благодаря

пример

код следующим образом:

<Window.Resources> 
    <Style TargetType="{x:Type Expander}" BasedOn="{StaticResource {x:Type Expander}}"> 
     <Setter Property="Foreground" Value="White" /> 
     <Setter Property="Background" Value="#464646" /> 
     <Setter Property="Width" Value="Auto" /> 
     <Setter Property="Margin" Value="1,0,1,0" /> 
     <Setter Property="IsExpanded" Value="False" /> 
    </Style> 
</Window.Resources> 

<Expander ContextMenu="{StaticResource cMnu}" Width="auto"> 
    <Expander.Header> 
     <StackPanel Orientation="Horizontal" Width="auto" Margin="0"> 
      <TextBlock Width="65">Normal</TextBlock> 
      <TextBlock Width="80">Open</TextBlock> 
      <TextBlock Width="80">10/31/2009</TextBlock> 
      <TextBlock TextWrapping="Wrap" Width="500"> 
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
      Aliquam ultrices auctor magna, sit amet commodo ipsum accumsan eu. 
      Sed a mollis felis. Nam ullamcorper augue vel mauris consequat imperdiet. 
      Nunc in augue mauris. 
      Quisque metus tortor, porttitor nec auctor id, mollis nec ipsum. 
      Suspendisse eget ipsum vitae lectus fermentum porta. 
      Aliquam erat volutpat. 
      Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. 
      Phasellus congue dui ac arcu eleifend a amet. 
      </TextBlock> 
     </StackPanel> 
    </Expander.Header> 
</Expander> 

ответ

1

Если вы посмотрите на default template для Expander, вы можете понять, почему ни один из ваших сеттеры собственности не работают:

<Grid> 
    <Grid.ColumnDefinitions> 
    <ColumnDefinition Width="20" /> 
    <ColumnDefinition Width="*" /> 
    </Grid.ColumnDefinitions> 
    <ToggleButton IsChecked="{Binding Path=IsExpanded,Mode=TwoWay, 
       RelativeSource={RelativeSource TemplatedParent}}" 
       OverridesDefaultStyle="True" 
       Template="{StaticResource ExpanderToggleButton}" 
       Background="{StaticResource NormalBrush}" /> 
    <ContentPresenter Grid.Column="1" 
        Margin="4" 
        ContentSource="Header" 
        RecognizesAccessKey="True" /> 
</Grid> 

ToggleButtonVerticalAlignment - это то, что вам нужно, и для него нет сеттеров.

Мне кажется, что есть нет способа изменить это свойство выравнивания через Style. Вы должны предоставить новый шаблон.