我有一个UserControl
我写的基本可以正常工作,但现在我想改进它。最初的设计只是一个Grid
带有几个FrameworkElements
,like Rectangle
and的TextBlock
。问题是为了让它工作,我创建了大量冗余的依赖属性。例如,我没有使用这些属性设置控件的Width
and ,而是创建了名为and的新控件,这真的很糟糕。Height
MyControlWidth
MyControlHeight
我已经开始使用 a 重写控件Label
,并将我的Rectangles
andTextBlock
放在Label
'sControlTemplate
中。现在我的问题是,虽然Height
看起来Width
工作正常,但我的其他一些依赖属性却没有。
例如,我希望我的控件具有用户指定的圆角,因此我创建了一个名为的依赖属性,并OutlineRadius
使用它来设置. 好吧,现在当我运行我的应用程序时,我收到一个数据绑定错误,上面写着:RadiusX
RadiusY
Rectangle
System.Windows.Data 错误:40:BindingExpression 路径错误:在“对象”“MyTestApplication”(名称=“”)上找不到“OutlineRadius”属性。绑定表达式:路径=轮廓半径;DataItem='MyTestApplication'(名称='');目标元素是'矩形'(名称='');目标属性是“RadiusX”(类型“双”)
谁能告诉我哪里可能出错了,在这里?我也在考虑在我的应用程序中创建 aStyle
并将其应用于Label
s ,但我仍然会遇到问题,OutlineRadius
因为我不知道在使用Style
's 时是否可以向现有控件添加属性。