【问题标题】:Overwrite Expander ToggleButton style with MahApps.Metro theming使用 MahApps.Metro 主题覆盖 Expander ToggleButton 样式
【发布时间】:2020-07-15 15:07:00
【问题描述】:

我正在使用 MahApps.Metro 为我的 WPF 应用程序设置样式。在一些地方,我使用<Expander> 作为弹出菜单。

但是,切换箭头的默认方向在逻辑上是向后的(它显示当前状态,而不是单击按钮将执行的操作)。

所以目前,这还没有展开:

这是扩展的:

我想交换这些,使扩展点向左扩展,而不是向右扩展。我不能使用ExpandDirection="Right",因为这样标题就在错误的一侧。

默认样式在这里:https://github.com/MahApps/MahApps.Metro/blob/develop/src/MahApps.Metro/Styles/Controls.Expander.xaml - 我不想全部粘贴在这里,因为它很长。

我的理解是,我只需要将 MahApps.Styles.ToggleButton.ExpanderHeader.LeftMahApps.Styles.ToggleButton.ExpanderHeader.Right 中的 RotateTransform Angle 从 90 更改为 -90,反之亦然。

我可以只覆盖该样式的特定部分而不影响其他所有内容吗?

目前,如果我在 App.xaml 中创建新样式,我可以反转箭头方向,但我会丢失所有我想保留的主题(颜色等)。

【问题讨论】:

    标签: wpf xaml mahapps.metro


    【解决方案1】:

    您可以使用ExpanderHelper为左展开方向设置右标题样式:

    <Expander IsExpanded="False"
              ExpandDirection="Left"
              Height="200"
              mah:ExpanderHelper.HeaderLeftStyle="{DynamicResource MahApps.Styles.ToggleButton.ExpanderHeader.Right}">
    </Expander>
    

    命名空间是xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"

    【讨论】:

    • 啊,太棒了。让我不必更改整个控件模板!
    猜你喜欢
    • 2020-12-04
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多