【发布时间】:2016-01-29 13:00:19
【问题描述】:
我查看了很多问题/答案,但找不到我想要的,
我正在尝试仅更改扩展器标题的背景颜色,并且扩展器中的内容没有继续使用相同的颜色。最好在 xaml 中,但 vb.net 解决方案就足够了。
(任何cmets或建议都会有所帮助)
如果这是一个重复的问题,请引导我找到答案并让问题保持开放状态,以帮助其他人在以后避免同样的问题!
谢谢。
【问题讨论】:
我查看了很多问题/答案,但找不到我想要的,
我正在尝试仅更改扩展器标题的背景颜色,并且扩展器中的内容没有继续使用相同的颜色。最好在 xaml 中,但 vb.net 解决方案就足够了。
(任何cmets或建议都会有所帮助)
如果这是一个重复的问题,请引导我找到答案并让问题保持开放状态,以帮助其他人在以后避免同样的问题!
谢谢。
【问题讨论】:
我不确定这是否正是您要寻找的,但您可以通过简单地更改标题背景:
<Expander VerticalAlignment="Center">
<Expander.Header>
<Grid Background="LightBlue">
<TextBlock Text="Expander Header"/>
</Grid>
</Expander.Header>
<StackPanel>
<TextBlock Text="Cotent"></TextBlock>
</StackPanel>
</Expander>
或者您可以使用HeaderTemplate 覆盖默认的Expander 的Header DataTemplate
<Window.Resources>
<DataTemplate x:Key="HeaderText">
<Border Height="25" Background="LightBlue">
<TextBlock Text="{Binding}"
Margin="4 0"
VerticalAlignment="Center"
Foreground="White"
FontSize="11"
FontWeight="Normal"
/>
</Border>
</DataTemplate>
<Style TargetType="{x:Type Expander}">
<Setter Property="HeaderTemplate" Value="{StaticResource HeaderText}"/>
</Style>
</Window.Resources>
<Grid x:Name="LayoutRoot">
<Expander VerticalAlignment="Center" Header="Expander Header">
<StackPanel>
<TextBlock Text="Cotent"></TextBlock>
</StackPanel>
</Expander>
</Grid>
【讨论】:
我在设置标题背景时遇到了很多问题。 我发现最简单的方法是简单地制作一个彩色矩形并将其放在扩展器后面。 (使用边距和高度使其适合)
<Rectangle Grid.Row="1" Grid.Column="0" Fill="LightBlue" Height="33" Margin="0,0,0,-35" />
如果你想要圆角,也可以使用边框:
<Border CornerRadius="15" Height="33" Margin="0,0,0,-35" Background="LightBlue" />
【讨论】: