0

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

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

  1. 我试图创建一个 Button 子类,但不知何故我无法访问 VisualStateManager 中的依赖项属性
  2. 我试图在代码隐藏中编写东西,但后来我不确定如何将点击命令委托给 ViewModel 类。

有人可以给我一个小的工作示例吗?

谢谢

4

2 回答 2

4

您可以使用样式模板来做到这一点。

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

按钮模板编辑

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

样式创建弹出窗口

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

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

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

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

于 2012-12-30T02:52:35.967 回答
0

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

于 2012-12-30T22:38:07.570 回答