Как мне сослаться на круг Toggle Button Circle и переопределить вертикальное выравнивание Aero темы Expander? - PullRequest
0 голосов
/ 26 августа 2009

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

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

Мне нужен способ переопределить это VerticalAlignment в стиле, не создавая заново шаблон 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 Ответ

1 голос
/ 26 августа 2009

Если вы посмотрите на шаблон по умолчанию для 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>

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

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

...