C# 应用基本自定义样式时按钮不可见-WPF
我正在尝试用PNG(无边框、渐变等)可视化按钮 我所做的是:C# 应用基本自定义样式时按钮不可见-WPF,c#,wpf,C#,Wpf,我正在尝试用PNG(无边框、渐变等)可视化按钮 我所做的是: 资源 <Style x:Key="PlainImageButton" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="Button"> <Con
- 资源
<Style x:Key="PlainImageButton" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="Button"> <ContentPresenter HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> </ControlTemplate> </Setter.Value> </Setter> </Style>
- XAML
<Button Width="16" Height="16" Style="{DynamicResource PlainImageButton}"> <Button.Background> <ImageBrush ImageSource="Images/pencil.png"/> </Button.Background> </Button>
为什么会发生这种情况?您正在按钮中提供图像作为背景。而在模板中,您没有使用background属性与ContentPresenter绑定 试试这个
<Button Width="16"
Height="16"
Style="{DynamicResource PlainImageButton}">
<Button.Content>
<Image Source="pencil.png" />
</Button.Content>
</Button>
在这里,我将内容设置为图像,该图像将与模板中的ContentPresenter绑定
希望有帮助:)您必须在模板中使用提供的背景,例如:
<Button.Template>
<ControlTemplate TargetType="{x:Type ButtonBase}">
<Border x:Name="border" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
<ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" />
</Border>
</ControlTemplate>
</Button.Template>