在WPF扩展控件中更改标题的背景颜色

5

我试图更改扩展器的背景颜色。这似乎很简单,但我无法让它正常工作。

<Expander Name="expOneDay">
        <Expander.Header>
            <TextBlock Foreground="CadetBlue" Text="Some Text" HorizontalAlignment="Stretch" />
        </Expander.Header>
 ...

</Expander><br/><br/>

为什么HorizontalAlignment="Stretch"没有起到作用呢?我试图将Header的宽度绑定到Expander的宽度,但结果不太美观。
1个回答

13

请看这里,这应该会解决问题... 您需要将标题模板的宽度设置为展开器的宽度。

<Expander Name="expOneDay" 
          HorizontalAlignment="Stretch"
          HorizontalContentAlignment="Stretch" Width="Auto">
     <Expander.Header >
          <Border Background="Bisque">
               <TextBlock Foreground="White" Text="Steve" 
                          Width="{Binding ElementName=expOneDay, Path=ActualWidth}"
                          HorizontalAlignment="Stretch" />
          </Border>
     </Expander.Header>
</Expander>

3
好的回答,但我已经尝试过了,没有帮助,看起来标题似乎比扩展器还要大。 - Arsen Mkrtchyan
很有趣,对我来说运行得很好 - 应该是完全相同的宽度。你可以制作一个转换器,将宽度减去一些量,返回结果。 - Muad'Dib
这并不总是有效的 - 尤其是当Expander的宽度没有预先设置时。我使用了一个技巧,将宽度设置为另一个父组件,该组件的宽度不会改变。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接