C# Can';t在样式中设置自定义依赖项属性
我已经编写了一个自定义控件,其中包含许多依赖属性。如果我使用如下XAML,一切都可以正常工作:C# Can';t在样式中设置自定义依赖项属性,c#,wpf,xaml,C#,Wpf,Xaml,我已经编写了一个自定义控件,其中包含许多依赖属性。如果我使用如下XAML,一切都可以正常工作: <ProgressDial DialStart="Top" OutlineColor="Red" ... /> 顺便说一下,DialStart类型是一个枚举 下面是一个示例,其中一个DPs很高兴从样式中设置:- public static readonly DependencyProperty OutlineColorProperty = DependencyProperty.R
<ProgressDial DialStart="Top" OutlineColor="Red" ... />
顺便说一下,DialStart
类型是一个枚举
下面是一个示例,其中一个DPs很高兴从样式中设置:-
public static readonly DependencyProperty OutlineColorProperty = DependencyProperty.Register(
"OutlineColor",
typeof(Brush),
typeof(ProgressDial),
new PropertyMetadata(new SolidColorBrush(Colors.WhiteSmoke)));
public Brush OutlineColor
{
get { return (Brush)GetValue(OutlineColorProperty); }
set { SetValue(OutlineColorProperty, value); }
}
我尝试用单独的GetDialStart()和SetDialStart()方法替换DialStart
属性,但没有任何区别。(另一方面,我很好奇为什么有两种方法可以暴露DP?。将其注册为“DialStart”
,而不是注册(“DialStartProperty”
典型-刚刚发现了这一点(在挠头一小时后)当我注意到你的评论时,我正要删除我的SO问题!总是这样…使用C#快捷方式来避免这些恼人的语法问题;键入“propdp”并按“tab”。这是自动创建依赖属性的快捷方式。将其注册为“DialStart”
,而不是注册(“DialStartProperty”
Typical-我刚刚发现了这一点(在一个小时的挠头之后),正要删除我的SO问题,这时我注意到了你的评论!总是这样…使用C#快捷方式来避免这些恼人的语法问题;键入“propdp”并按“tab”。这是自动创建依赖项属性的快捷方式。
public static readonly DependencyProperty DialStartProperty = DependencyProperty.Register(
"DialStartProperty",
typeof(DialStart),
typeof(ProgressDial),
new PropertyMetadata(DialStart.Top));
public DialStart DialStart
{
get { return (DialStart)GetValue(DialStartProperty); }
set { SetValue(DialStartProperty, value); }
}
public static readonly DependencyProperty OutlineColorProperty = DependencyProperty.Register(
"OutlineColor",
typeof(Brush),
typeof(ProgressDial),
new PropertyMetadata(new SolidColorBrush(Colors.WhiteSmoke)));
public Brush OutlineColor
{
get { return (Brush)GetValue(OutlineColorProperty); }
set { SetValue(OutlineColorProperty, value); }
}