我有一个以编程方式创建的按钮,它的内容是一个带有图像和文本块的堆栈面板。这一切都很有效。
我想让图像和文本背后的按钮透明,这样图像和文本看起来就像是坐在背景上,但仍然具有按钮的所有属性(即有人点击按钮区域仍会注册按钮点击事件)。
我一直在玩不透明,但我处理按钮的每个不透明度似乎都将整个按钮(包括图像和文字)设置为不透明度值。
如何在使文字和图像内容仍然可见的同时使按钮不透明?
哦,这是银光3.提前谢谢。
答案 0 :(得分:4)
您可以覆盖按钮的模板属性以创建一个空网格,如下所示:
<Button>
<Button.Template>
<ControlTemplate TargetType="Button">
<Grid />
</ControlTemplate>
</Button.Template>
</Button>
如果需要,可以将其设置为可重复使用的样式。
答案 1 :(得分:4)
您将需要对按钮进行模板设置并删除您不想保留的渐变,焦点元素等按钮的默认样式。听起来你可能只想保留内容演示者并摆脱背景和鼠标“发光”渐变。如果您希望整个按钮区域拦截鼠标事件而不仅仅是底层图像和文本内容,则可能必须将StackPanel内容的背景设置为透明。
Scott Gu在创建控件模板的基础知识方面有good tutorial here。
如果您正在使用Expression Blend,则可以非常轻松地右键单击按钮并选择“编辑模板” - >编辑副本以将默认样式复制到按钮的新样式资源中,然后可以在Blend中操作模板。