自定义按钮样式对齐wpf
Custom button style alignment wpf
我尝试修改按钮样式以删除 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}"/>
ContentPresenter HorizontalAlignment="Center"
您通常使用 ContentControl 的 ControlTemplate 中的 ContentPresenter 来指定要添加内容的位置。每个 ContentControl 类型在其默认 ControlTemplate 中都有一个 ContentPresenter。
当 ContentPresenter 对象位于 ContentControl 的 ControlTemplate 中时,Content、ContentTemplate 和 ContentTemplateSelector 属性从 ContentControl 的同名属性中获取它们的值。您可以让 ContentPresenter 属性 通过设置 ContentSource 属性 或绑定到它们来从模板化父级的其他属性获取这些属性的值。
<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>
我尝试修改按钮样式以删除 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}"/>
ContentPresenter HorizontalAlignment="Center"
您通常使用 ContentControl 的 ControlTemplate 中的 ContentPresenter 来指定要添加内容的位置。每个 ContentControl 类型在其默认 ControlTemplate 中都有一个 ContentPresenter。
当 ContentPresenter 对象位于 ContentControl 的 ControlTemplate 中时,Content、ContentTemplate 和 ContentTemplateSelector 属性从 ContentControl 的同名属性中获取它们的值。您可以让 ContentPresenter 属性 通过设置 ContentSource 属性 或绑定到它们来从模板化父级的其他属性获取这些属性的值。
<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>