如何在显示图像的同时使Silverlight按钮透明?

3
我有一个通过编程创建的按钮,它的内容是一个带有图像和文本块的堆栈面板。这一切都非常好。
我想让图像和文本看起来像是坐落在背景上,但仍然具有按钮的所有属性(即,当有人点击按钮区域时,它仍然注册按钮单击事件),因此希望将图像和文本后面的按钮设置为透明。
我一直在尝试不同的不透明度,但每个不透明度似乎都会将整个按钮(包括图像和文本)设置为该不透明度值。
如何使按钮不透明,同时使文本和图像内容仍然可见?
哦,这是Silverlight 3。谢谢您的帮助。
2个回答

4
您可以覆盖按钮的模板属性来创建一个空网格,如下所示:
<Button>
        <Button.Template>
            <ControlTemplate TargetType="Button">
            <Grid />
        </ControlTemplate>
    </Button.Template>
</Button>

如果需要,这可以被设置为可重用的样式。

谢谢你的意见,我会先尝试这个方法,因为它似乎是最简单的。 - Mike

4
你需要对按钮进行模板化,并从默认按钮样式中删除渐变、焦点元素等不想保留的内容。看起来你可能只想保留内容呈现器,摆脱背景和鼠标悬停时的"光晕"渐变效果。如果你希望整个按钮区域都能拦截鼠标事件,而不仅仅是下面的图像和文本内容,那么你可能需要将StackPanel内容的背景设置为透明。
Scott Gu在这里有一个很好的教程,介绍了创建控件模板的基础知识。
如果你正在使用Expression Blend,右键单击按钮并选择 "编辑模板" -> "复制以编辑",就可以将默认样式复制到一个新的样式资源中,然后在Blend中直接操作模板非常容易。

谢谢,丹。我想那就可以了。 - Mike

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接