0

目前,我在 App.xml 文件中引用 Aero 主题。在 main.xml 文件中,我使用扩展器在可调整宽度的应用程序中显示内容。(对于这个例子,我将宽度限制为 500)

扩展器标题内容通常很短,但最多允许 500 个字符。根据窗口大小(默认为 600 像素),内容可以换行(从而向下拉伸扩展器标题)。这很好,但是据我所知,为 VerticalAlignment=center 设置了切换按钮(圆形 /w 箭头)。

我需要一种方法来覆盖样式中的 VerticalAlignment,而无需为 Expander 重新创建 Aero 模板。我似乎无法引用圆圈和箭头对象。我也尝试过覆盖 Toggle Button,但没有运气。

正如您在下面看到的,我可以覆盖 Aero Expander 的某些方面。我只需要一点点推动来获得切换按钮圆形和箭头对象来更改垂直对齐。

谢谢

代码示例如下:

<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>
4

1 回答 1

1

如果您查看 的默认模板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's是你所VerticalAlignment追求的,没有二传手。

在我看来,没有办法通过Style. 您必须提供新模板。

于 2009-08-25T22:25:46.657 回答