【发布时间】:2010-10-22 16:20:14
【问题描述】:
我在 SL 中设置了一个自定义控件,我正在尝试让控件的默认外观正常运行。我觉得(在一些聪明人的帮助下)我已经非常接近实现这个目标了,但我还没有完全做到。
当我的控件第一次添加到 Blend 中的面板时,它会根据模板按我预期的方式显示,并且当我修改我公开的依赖项属性时,它们也可以正常工作。我现在遇到的问题是,当通过 Blend 进行更改然后使用选项框“重置”该值时,它会重置“杂项”窗格下的属性,但实际上不会在设计视图中更改控件本身,除非我再次构建项目。
这是我目前拥有的代码:
public enum SolidGlossTypes
{
Normal,
Header,
Footer,
None
}
public SolidGlossTypes SolidGlossType
{
get
{
return (SolidGlossTypes)GetValue(SolidGlossTypeProperty);
}
set
{
SetValue(SolidGlossTypeProperty, value);
switch (value)
{
case SolidGlossTypes.Header:
SolidGloss_Upper.Visibility = Visibility.Visible;
SolidGloss_Lower.Visibility = Visibility.Collapsed;
break;
case SolidGlossTypes.Footer:
SolidGloss_Upper.Visibility = Visibility.Collapsed;
SolidGloss_Lower.Visibility = Visibility.Visible;
break;
case SolidGlossTypes.None:
SolidGloss_Upper.Visibility = Visibility.Collapsed;
SolidGloss_Lower.Visibility = Visibility.Collapsed;
break;
default:
SolidGloss_Upper.Visibility = Visibility.Visible;
SolidGloss_Lower.Visibility = Visibility.Visible;
break;
}
}
}
public static readonly DependencyProperty SolidGlossTypeProperty = DependencyProperty.Register("SolidGlossType", typeof(SolidGlossTypes), typeof(SolidGloss), new PropertyMetadata(SolidGlossTypes.Normal));
我尝试修改属性更改的回调,但没有任何成功让它工作。
另外,是否可以将依赖属性的默认值设置为 generic.xaml 中的样式,然后从模板绑定到该样式?
提前致谢,
E
【问题讨论】:
标签: silverlight custom-controls dependency-properties