wpf 带有materialIcons侧栏

h7wcgrx3  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(166)

我有一个自定义控件,我疯了,为主机的名称,和图标的面板,并作出触发器,所以它会改变颜色时,我悬停图标或选择它

public class NavButton : ListBoxItem {
    static NavButton() {
        DefaultStyleKeyProperty.OverrideMetadata(typeof(NavButton),
            new FrameworkPropertyMetadata(typeof(NavButton)));
    }

    public Uri NavLink {
        get { return (Uri)GetValue(NavLinkProperty); }
        set { SetValue(NavLinkProperty, value); }
    }

    // This property will hold specifics on where to navigate within our appreciation
    public static readonly DependencyProperty NavLinkProperty =
        DependencyProperty.Register(
            "NavLink", typeof(Uri),
            typeof(NavButton),
            new PropertyMetadata(null));

    // This property will hold specifics on the icon
    public Label Icon {
        get { return (Label)GetValue(IconProperty); }
        set { SetValue(IconProperty, value); }
    }

    // Using a DependencyProperty as the backing store for Icon.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty IconProperty =
        DependencyProperty.Register("Icon",
            typeof(Label),
            typeof(NavButton),
            new PropertyMetadata(null));

问题是,每当我在main中调用此控件时,总是会得到此错误

我是这么叫的

<custom:NavButton
                Padding="6"
                FontFamily="{StaticResource Material}"
                Icon="{x:Static fonts:IconFont.VolumeHigh}"/>

这是标签的追索权字典
第一次

f87krz0w

f87krz0w1#

错误消息明确指出,您有一个类型不匹配。Icon DP不应具有类型Label。它应具有与IconFont.VolumeHigh相同的类型。或者它可以简单地为object

// This property will hold specifics on the icon
public object Icon {
    get { return (Label)GetValue(IconProperty); }
    set { SetValue(IconProperty, value); }
}

// Using a DependencyProperty as the backing store for Icon.  This enables animation, styling, binding, etc...
public static readonly DependencyProperty IconProperty =
    DependencyProperty.Register("Icon",
        typeof(object),
        typeof(NavButton),
        new PropertyMetadata(null));

相关问题