【问题标题】:Default ToggleButton of Expander in ControlTemplateControlTemplate 中扩展器的默认切换按钮
【发布时间】:2019-01-16 22:00:21
【问题描述】:

Expander 应该是左侧的 HeaderText 和右侧的 ToggleButton

我尝试将ToggleButton 设置为默认样式,而不为它创建一个完整的新ControlTemplate

有人可以帮忙吗?

<ControlTemplate TargetType="Expander" x:Key="ExpanderControlx">
    <Grid Margin="0">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Name="ContentRow" Height="0"/>
        </Grid.RowDefinitions>
        <Border Grid.Row="0" >
            <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 {x:Type ToggleButton}}"
                              />
                <TextBlock  Grid.Column="0" Eddie.TextFormat="Header1" Text="{TemplateBinding Header}" HorizontalAlignment="Left" />
            </Grid>
        </Border>
        <Border Grid.Row="1" Name="ContentText" >
            <StackPanel>
                <ContentPresenter/>
            </StackPanel>
        </Border>
    </Grid>

    <ControlTemplate.Triggers>
        <Trigger Property="IsExpanded" Value="True">
            <Setter TargetName="ContentRow" Property="Height" Value="{Binding ElementName=ContentText, Path=Height}"/>
        </Trigger>
    </ControlTemplate.Triggers>
</ControlTemplate>

<Style TargetType="controls:ExpanderControl">
    <Setter Property="Template" Value="{StaticResource  ExpanderControlx}" />
</Style>

【问题讨论】:

  • 我尝试将 ToggleButton 的 Template 设置为 ToggleButton 的静态资源,但出现错误。
  • ToggleButton 当前的外观如何?您希望它看起来如何?
  • 所以您希望整行成为一个切换按钮,但切换的视觉效果就在右侧?不清楚你在问什么,不过听起来像是一个快速模板。
  • 切换按钮应该看起来像普通扩展器的默认按钮。只有右上角的字段应该有正常的扩展按钮。如果我在代码中删除分配给切换按钮的覆盖模板的行,它会显示一个没有箭头的矩形按钮。

标签: wpf xaml templates togglebutton expander


【解决方案1】:

从 cmets 中,我认为您正在寻找一个扩展器,其标题位于左侧,箭头按钮(切换)位于右侧。

如果是这样,您可以使用链接 here 的 Material Design 工具包中的 Expander。

您还可以探索更多 Material Design 工具包here

【讨论】:

    猜你喜欢
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    • 2021-03-21
    • 2011-01-02
    • 1970-01-01
    • 2014-09-21
    相关资源
    最近更新 更多