这是交易.我可以创建一个ListBox并设置它的样式.我可以编辑模板的副本,以便状态在Expression Blend 3中可用.我可以更改状态,以便在选择时修改行项目的背景颜色.但由于ContentPresenter,我无法更改文本的前景色!有没有人有任何示例XAML,展示如何完成这个看似简单的任务?
答案似乎在于删除ContentPresenter并用某种ListBoxItem样式或模板替换它,但这是我被卡住的地方. ListBox的ContentPresenter引用了一些其他模板“{TemplateBinding Template}” – 这是哪个?此外,当我尝试以任何方式修改ContentPresenter时,States面板变为空白,我留下了XAML的泥潭.幸运的是,有CTRL-Z!
我真的认为微软必须重新思考XAML方法或使Blend成为一个更完整的工具.它应该工作的方式是我应该能够点击任何元素并为其定义状态.如果我试图违反规则,Blend应该告诉我这个,并提供一种解决方法.让States面板变空是没有用的.
最佳答案 很抱歉重新提出一个旧问题,但我遇到了同样的问题并找到了解决方案.我将分享它,因为谁知道,它可能对某人有用.
它非常简单:如果您使用ContentControl替换模板中的ContentPresenter,那么它可以工作(ContentControl具有Foreground属性).