如何修复自定义样式的依赖项属性

时间:2019-07-16 13:39:52

标签: c# wpf dependency-properties

我正在使用个人库来定义样式。 我创建了一些DependecyProperty来管理样式大小。 Exemple of the style when it works

这是我创建的依赖项的一部分:

public class CheckboxExtensions : CheckBox
{
    public static readonly DependencyProperty CheckHeightProperty =
        DependencyProperty.RegisterAttached(
            "CheckHeight",
            typeof(double),
            typeof(CheckboxExtensions),
            new PropertyMetadata(OnHeightChange));

    public static void SetCheckHeight(UIElement element, double value)
    {
        element.SetValue(CheckHeightProperty, value);
    }

    public static readonly DependencyProperty LeftColorProperty =
        DependencyProperty.RegisterAttached(
            "LeftColor",
            typeof(SolidColorBrush),
            typeof(CheckboxExtensions));

    public static void SetLeftColor(UIElement element, SolidColorBrush value)
    {
        element.SetValue(LeftColorProperty, value);
    }

    public static SolidColorBrush GetLeftColor(UIElement element)
    {
        return (SolidColorBrush)element.GetValue(LeftColorProperty);
    }
}

我可以在我的样式中定义这样的颜色:

<Setter Property="extensions:CheckboxExtensions.LeftColor" Value="{DynamicResource Foreground}" />
<Setter Property="extensions:CheckboxExtensions.RightColor" Value="{DynamicResource ControlBackground.Flash}" />

当我直接在窗口中使用它时,它可以工作,但设计时间没有显示“项目符号” enter image description here

但是我有一个更大的问题。当我在UserControl库中使用它并将该UserControl加载到应用程序中时。我得到了与设计时相同的结果。完全没有颜色,但尺寸设置正确。

我该如何解决?

0 个答案:

没有答案