嗨,我想知道是否可以将WPF扩展器控件上的切换按钮对齐到最右边?
使用 WPF 可以实现一切。;)不幸的是,并非所有事情都很简单。在这里,最好的方法是重新定义扩展器的模板。首先,请复制默认的 Expander
模板,可以在此处找到:这里。
接下来,找到包含 2 个列的 Grid
,其中一个包含一个 ToggleButton
,另一个包含一个 ContentPresenter
。交换列,使切换按钮位于第一列。然后更改列定义大小,使第一列为星号大小,第二列为大小 20。完成后,你的模板中应该有一个类似于下面这样的块:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="20" />
</Grid.ColumnDefinitions>
<ToggleButton Grid.Column="1"
IsChecked="{Binding Path=IsExpanded,Mode=TwoWay,
RelativeSource={RelativeSource TemplatedParent}}"
OverridesDefaultStyle="True"
Template="{StaticResource ExpanderToggleButton}"
Background="{StaticResource NormalBrush}" />
<ContentPresenter Margin="4"
ContentSource="Header"
RecognizesAccessKey="True" />
</Grid>
继续修改模板,直到你获得所需的外观和感觉。
编辑:MSDN提供的模板是“真实”扩展程序模板的基本版本。如果你想要样式化的扩展程序模板,请使用Expression Blend并从Expander
中复制现有的控件模板。