我想在扩展器控件中有一个自定义头。我想有左对齐一个标题文本和图片与右对齐:更改扩展器头ContentPresenter HorisontalAlign属性
<Expander>
<Expander.Header>
<DockPanel LastChildFill="True" HorizontalAlignment="Stretch">
<TextBlock DockPanel.Dock="Left" Text="Some Header Text"/>
<Image DockPanel.Dock="Right" HorizontalAlignment="Right" />
</DockPanel>
</Expander.Header>
<StackPanel >
<ItemsPresenter />
</StackPanel>
</Expander>
不幸的是,头不默认horizontaly舒展的元素中呈现。该元素是ContentPresenter控件,并且默认情况下它不会伸展,因为它的HorisontalAlign值是Left。如果我将它更改为Stretch(我已经在Snoop工具中完成了这项工作),那么头部会按照我的需要进行渲染。但是,我如何从代码中更改它?
我试着用正确的HorizontalAlignment值向Expander资源添加ContentPresenter样式,但不幸的是它不起作用。可能ContentPresenter应用了一些自定义样式,这就是为什么它没有抓住我的样式。我试过这样:
<Expander.Resources>
<Converters:TodoTypeToHeaderTextConverter x:Key="TodoTypeToHeaderTextConverter" />
<Style TargetType="ContentPresenter">
<Setter Property="HorizontalAlignment" Value="Stretch" />
</Style>
</Expander.Resources>
那么我还能试试吗?