【发布时间】:2011-07-25 15:06:49
【问题描述】:
乡亲
我在一个项目中从事 UI 设计工作,我们的团队选择尽可能地分离 C# 和 XAML。
我在为许多常见的小部件(按钮等)和一些用户控件创建样式时遇到了麻烦,特别是因为我不想/不知道如何/我不应该使用代码隐藏。
我想要做的是能够更改在我的 UserControls 布局树“深处”的元素的属性。
例如,假设我有一个 UserControl,它是一个 Border,其中包含一个 StackPanel,其中包含一个彩色 Ellipse 和其他东西。
我希望能够实例化此用户控件并仅更改椭圆的颜色,如下所示:
<MyUserControl Background="Gray" EllipseColor="LightGreen" />
其中“EllipseColor”是在 UserControl 中定义的一些“自定义”属性。
我在样式中尝试了DependencyProperty,但没有成功,尽管我“感觉”一定有一个简单的方法可以做到这一点。
非常欢迎任何帮助(链接、代码 sn-ps)。
感谢阅读。
【问题讨论】:
-
我认为 DependencyProperty 正是你想要的......但当然你必须编写代码来注册它 - 这算作代码隐藏吗?您在尝试使用 DependencyProperty 时遇到了什么问题?
标签: wpf xaml styles dependency-properties