【发布时间】:2012-04-02 15:57:48
【问题描述】:
专家,
我编写了一个名为“DimensionLine”的自定义形状,我在 UI 的不同位置使用它。该形状由一条线组成,每一端都有一个箭头。它工作正常,但其中一个依赖属性无法通过样式设置,我只是无法弄清楚我做错了什么。
这是无法按预期工作的代码部分:
public class DimensionLine : Shape
{
public static readonly DependencyProperty ArrowsSizeProperty =
DependencyProperty.Register("ArrowsSize", typeof(Size), typeof(DimensionLine),
new FrameworkPropertyMetadata(new Size(10, 10),
FrameworkPropertyMetadataOptions.AffectsArrange | FrameworkPropertyMetadataOptions.AffectsMeasure,
debug)); <-- I added this to listen for changes to the property ...
private static void debug(DependencyObject dObj, DependencyPropertyChangedEventArgs e)
{
// ERROR! this code never receives value from the Style. Why?
}
public Size ArrowsSize
{
get { return (Size) GetValue(ArrowsSizeProperty); }
set { SetValue(ArrowsSizeProperty, value); }
}
}
XAML:
<MyXaml.Resources>
<Style x:Key="SmallDimensionLine" TargetType="{x:Type cc:DimensionLine}" BasedOn="{StaticResource DimensionLine}">
<Setter Property="ArrowsSize" Value="4,1.5" />
</Style>
</MyXaml.Resources>
只是为了确保我为依赖属性元数据添加了一个回调侦听器并通过断点进行了调试,但通过样式指定的值根本没有写入它。
为了使 d-property 符合样式,还需要做其他事情吗?
谢谢
【问题讨论】:
标签: wpf styles dependency-properties