我正在尝试用PNG显示一个按钮(没有边框,渐变,等等)。
我做的是:
资源
<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>
但按钮是不可见的
为什么会这样?
答案 0 :(得分:1)
您必须在模板中使用提供的背景,例如那样:
<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>
答案 1 :(得分:0)
您在按钮中提供图像作为背景。而在您的模板中,您没有使用background属性与ContentPresenter绑定
试试这个
<Button Width="16"
Height="16"
Style="{DynamicResource PlainImageButton}">
<Button.Content>
<Image Source="pencil.png" />
</Button.Content>
</Button>
在这里,我已将内容设置为将与模板中的ContentPresenter绑定的图像
希望有所帮助:)