带有圆圈图像的WPF按钮

时间:2010-10-12 11:38:07

标签: wpf image button

我在.png中有一个彩色圆圈,其余部分是透明的。 我能够将该图像放在按钮上,但按钮的其余部分样式在图像的透明图像上可见。如何在正常,鼠标悬停和按下模式下隐藏它?

3 个答案:

答案 0 :(得分:4)

试试这种风格

    <Style x:Key="EmptyButtonStyle" TargetType="{x:Type Button}">
        <Setter Property="Background" Value="#00000000"/>
        <Setter Property="BorderBrush" Value="#00000000"/>
        <Setter Property="BorderThickness" Value="0"/>
        <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
        <Setter Property="HorizontalContentAlignment" Value="Center"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Setter Property="Padding" Value="1"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <ContentPresenter 
                        HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
                        Margin="{TemplateBinding Padding}" 
                        RecognizesAccessKey="True" 
                        SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" 
                        VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

并使用如下

    <Button Style="{DynamicResource EmptyButtonStyle}">
        <Image Source="/Assets/circle.png" />
    </Button>

答案 1 :(得分:0)

听起来您正在使用现有按钮的模板,只是添加了一个图像。您需要做的是修改按钮的<Template>本身,以便它使用您的图像而不是默认模板。

如果您在“WPF模板”或“WPF圆形按钮”等内容上进行谷歌搜索,您可能会想出一些很好的例子。

答案 2 :(得分:-2)

我最终使用了最简单的解决方案(可能不是最优雅的)。

<Image x:Name="nextImage" MouseDown="nextButton_Click"></Image>