【发布时间】:2011-06-30 00:43:13
【问题描述】:
好的,我知道在 DataBinding 中您可以轻松地定位第一个或最后一个绑定项目,但我想知道是否有任何方法可以让您在 Panel 的子类中隐式设置第一个和最后一个项目的样式(例如,不添加任何标识这是第一个还是最后一个。我只想使用序数位置。)
例如,我有这个...
<UniformGrid Rows="1">
<RadioButton Content="First" />
<RadioButton Content="Middle" />
<RadioButton Content="Another Middle" />
<RadioButton Content="Last" />
</UniformGrid>
...我想在第一个项目上定位一个样式,在最后一个项目上定位第二个样式。
也就是说,我知道我可以......
为第一项和最后一项添加显式样式,或
将显式附加属性添加到第一项和最后一项,并在样式触发器中使用它。 (这就是我的倾向。)
...但是,我希望再次避免这两种情况,并使用隐式样式使用纯 XAML。
那么,可以吗?
更新:
目前,我最终只是采用了通用的附加属性方法。我创建了一个名为 UIHelper.Position 的 AP,它的值为 First、Last 和 Default。然后我们在模板内的触发器中引用它并相应地设置样式。
它仍然需要我们使用附加属性“标记”控件,但它让我们克服了困难,并且避免了使用多个模板创建多个样式。 (我们的模板在内部使用了 CornerRadius,它不是模板化控件的属性,所以我们不能简单地设置它的样式。它必须在触发器中完成。)
不过,如果有人知道如何在不借助附加属性的情况下做到这一点,请随时在下面回答。
【问题讨论】: