创建简单自定义XAML / C#按钮

时间:2012-12-30 02:31:46

标签: c# xaml windows-8

首先,我是XAML / C#的新手(我是iOS / Android程序员)所以请耐心而不是立即投票。我的应用程序有一些包含按钮的GridView。很多这些按钮都很相似,我想重构一下。为简单起见,假设我的按钮只是具有给定颜色的矩形。此颜色可能来自定义GridView中特定项的Item类,也可能是硬编码的。我希望矩形在悬停和按下状态时改变颜色。我希望这些颜色也是参数。

实现这一目标的最佳方法是什么?

  1. 我试图创建一个Button子类但不知何故我无法访问VisualStateManager中的依赖项属性
  2. 我尝试在代码隐藏中编写内容,但后来我不确定如何将click命令委托给ViewModel类。
  3. 有人可以给我一个小例子吗?

    由于

2 个答案:

答案 0 :(得分:4)

您可以使用样式模板执行此操作。

在Visual Studio设计器中,右键单击按钮,然后选择Edit Template,然后选择Edit a Copy...

Button Template Edit

然后系统会提示您命名新样式以及存储它的文件。现在,只需给它一个唯一的名称,例如MyButtonStyle,然后选择当前文件。

Style Creation Popup

然后,Visual Studio将该样式的副本添加到当前的xaml文档中,并将更新您的按钮以使用新样式。

<Button x:Name="Download" Style="{StaticResource MyButtonStyle}"></Button>

在此之后,您可以更新新样式,包括更改不同视觉状态的颜色,例如悬停或点击。

然后,您可以继续在同一文档的其他按钮中使用新样式。要在多个xaml文档中使用该样式,您必须将其拉出到公共资源文件中。

答案 1 :(得分:0)

因此,您希望使用自定义属性调整按钮。这是使用自定义控件的好时机。您可以创建所需的任何依赖项属性,并在代码中调整布局。 http://timheuer.com/blog/archive/2012/03/07/creating-custom-controls-for-metro-style-apps.aspx