自定义按钮样式对齐wpf

时间:2015-06-28 17:55:42

标签: c# wpf button

我尝试修改按钮样式以删除类似Chrome系统的按钮。一切都很好,但按钮的内容将无法在按钮的中心正确对齐。

按钮样式:

<Style x:Key="NoChrome" TargetType="{x:Type Button}">
        <Setter Property="Background" Value="Transparent"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <ContentPresenter/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

按钮声明:

<Button Content="Button" Canvas.Left="141" Canvas.Top="324" Width="75" Style="{DynamicResource NoChrome}"/>

1 个答案:

答案 0 :(得分:0)

  

ContentPresenter Horizo​​ntalAlignment =&#34; Center&#34;

您通常使用ContentControl的ControlTemplate中的ContentPresenter来指定要添加内容的位置。每个ContentControl类型的默认ControlTemplate都有一个ContentPresenter。

当ContentPresenter对象位于ContentControl的ControlTemplate中时,Content,ContentTemplate和ContentTemplateSelector属性将从ContentControl的相同名称的属性中获取其值。您可以通过设置ContentSource属性或绑定它们,使ContentPresenter属性从模板化父级的其他属性中获取这些属性的值。

<Style x:Key="NoChrome" TargetType="{x:Type Button}">
        <Setter Property="Background" Value="Transparent"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <ContentPresenter HorizontalAlignment="Center"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

请参阅Reference