如何对齐WPF Expander控件的切换按钮

6

嗨,我想知道是否可以将WPF扩展器控件上的切换按钮对齐到最右边?


为什么要进行如此冗长的过程,当下面提供的链接中有一个简单的过程呢?https://dev59.com/3GDVa4cB1Zd3GeqPdXGU - Nikhil Agrawal
1个回答

15

使用 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中复制现有的控件模板。


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