【问题标题】:Image Button with no border that works like a toolbar button?像工具栏按钮一样工作的没有边框的图像按钮?
【发布时间】:2012-01-04 00:00:35
【问题描述】:

我想要一个按钮

  1. 显示无边框、无背景、无文字的图像
  2. 如果我进入图像按钮,那么它会显示背景和边框
  3. 另外,如果我将鼠标悬停在它上面,它会显示背景和边框

我已经搜索并尝试了很多不同的东西,但都没有完全符合我的要求。我尝试在按钮上设置各种属性以使背景和边框透明,但它仍然显示出来。我尝试了一种带有自定义控件模板的样式。我宁愿不必完全重新发明所有触发器等来让按钮在鼠标悬停时呈现。自定义控件模板的最大问题是我失去了所有现有的功能,我基本上是从头开始构建一个新控件。

这是另一个最接近我想要的链接,但它不适合我。

How do you completely remove the button border in wpf? - 但是....由于某种原因,悬停效果卡住了。我将鼠标悬停在图像上并绘制了按钮边框,它一直停留在我单击其他位置之前。

【问题讨论】:

    标签: wpf image button


    【解决方案1】:

    实际上,您会想要覆盖控件模板。您不会“失去”任何功能(除了 UI 触发器)。

    Original/Default Template -- 这是一个很好的起点...将其复制/粘贴到您的 XAML 中(无论您想在哪里设置此按钮的样式...即按钮资源、用户控件/窗口资源、应用程序资源?) .从那里进行调整。

    另一种简单的方法是使用 Expression Blend。您可以基于现有模板轻松创建新模板,并且它提供的样式/创作工具比手动编码 XAML 好得多(除非您擅长这样做)。


    就显示图像而不是文本而言,只需将图像设置为内容即可。 Button 是 ContentControl 的一种类型,这意味着它可以容纳任何类型的内容 (Object)。

    【讨论】:

    • 这些页面包含默认模板。默认值为hereDefault WPF Themes 链接在this page)。
    • @H.B.链接错误,我的错。我已经习惯了只使用 Expression Blend。
    • 感谢您提供指向默认模板的链接。然而,更令人困惑的是,它只依赖于特定主题的控件。
    • 我确实有一个只显示图像的内容模板,但是当他们将鼠标悬停在它上面时,我失去了视觉突出显示它是一个按钮的效果。我只想在正常渲染时隐藏默认边框。
    • @happyfirst:您仍然需要(完全)覆盖内容模板,包括切换视觉样式的触发器。
    猜你喜欢
    • 2011-03-17
    • 2015-12-20
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多