2010-04-06 52 views
5

嗨,我想知道是否有可能将WPF扩展控件上的切换按钮对齐到最右侧?如何对齐WPF扩展控件切换按钮

+0

当你在下面提供的链接中有一个简单的过程时,为什么你必须做这么长的过程。 http://stackoverflow.com/questions/9288342/how-to-put-wpf-expander-toggle-button-onright – 2012-02-15 07:18:59

回答

14

使用WPF所有的东西都是可能的。 ;)不幸的是,并非所有事情都很简单。这里最好的选择是重新模板扩展器。通过复制默认Expander模板开始,找到here

接下来,找到包含2列的Grid,其中一列包含ToggleButton,另一列包含ContentPresenter。交换列以使切换位于列1中。然后更改列定义大小,以便第一列为星号,第二列为大小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中删除。