【问题标题】:WPF Flat Repeat Button (ToolBar look)WPF 平面重复按钮(工具栏外观)
【发布时间】:2015-07-24 15:02:39
【问题描述】:

我正在尝试为RepeatButton 提供平面外观,而不会覆盖ControlTemplate。使用常规的Button,您可以执行以下操作(但不能使用RepeatButton):

<Button BorderThickness="0" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}">...

RepeatButtonButtonBase 有类似的东西吗?我假设没有,因为如果您将 RepeatButton 放在 ToolBar 中,则不会得到平坦的外观。

除了覆盖 ControlTemplate 之外,有没有更好的方法让 RepeatButton 具有平面外观?

【问题讨论】:

  • 你试过风格吗?
  • 对于我的情况,这就是我最终要做的(设置模板的样式),但我希望以某种方式利用现有样式来减少重复。我相信 Button 和 RepeatButton 子类 ButtonBase 如果 ToolBar.ButtonStyleKey 以 ButtonBase 而不是 Button 为目标,那会很棒。
  • @KornMuffin 你能用你的风格回答这个问题吗?
  • 已创建添加样式

标签: wpf wpf-4.0


【解决方案1】:

这是一个以路径为内容的平面重复按钮样式:

<Style x:Key="RepeatButtonFlat" TargetType="{x:Type RepeatButton}">
    <Setter Property="OverridesDefaultStyle" Value="true"/>
    <Setter Property="Focusable" Value="false"/>
    <Setter Property="IsTabStop" Value="false"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type RepeatButton}">
                <Border Background="Transparent" Height="14" Width="14">
                    <Path HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="Uniform" Margin="2"
                          Data="{Binding Path=Content, RelativeSource={RelativeSource TemplatedParent}}" />
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

示例用法:

<RepeatButton Style="{StaticResource ScrollBarLineButton}" Content="M0,0 L1,0 .5,-.5 Z"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-07
    • 2018-03-19
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    相关资源
    最近更新 更多