我想创建在Visual Studio中的XAML编辑器中使用它们时具有良好的下拉代码完成的DependencyProperties。在XAML中创建具有代码完成的属性或DependencyProperties
许多默认的SilverLight框架属性都具有此类完成,例如Background
或BorderBrush
。此外,Boolean
属性显示了XAML编辑器中的True
/False
选择。这同样适用于DependencyProperties如此,比如Canvas.Top
和Canvas.Left
等
我试图定义自己的Color
型或Boolean
的DependencyProperties,因为我相信,默认类型,如颜色,画笔和布尔可能会完成免费。这没有发生。
我相信我必须为我的属性定义一些注释,但没有找到示例,因为Silverlight SDK只在Visual Studio中显示公共API,而不是内部。
你有一个想法,如何获得代码完成属性?
更新:这里是我试图在SilverLigth做榜样3我刚才谈到的运动课,他认为,这个问题是有关的Silverlight 3和老非(!) VS2010-XAML编辑器在VS 2008
XAML:
<Grid x:Name="LayoutRoot">
<Border test:PropTest.Test="Blue">
<TextBlock Text="123"/>
</Border>
</Grid>
代码背后
namespace PropTest{
public class PropTest : DependencyObject {
public static readonly DependencyProperty TestProperty = DependencyProperty.RegisterAttached(
"Test", typeof(Color), typeof(PropTest), new PropertyMetadata(Colors.Red));
public static void SetTest(DependencyObject obj, Color color){
(obj as Border).Background = new SolidColorBrush(color);
}
public static Color GetTest(DependencyObject obj){
return Colors.Red;
}
}
}
这个例子是可编译/可运行的,但我想编写一个API使用DependencyProperties
而不是一个应用程序,因此我希望我的API的代码完成。 :)
对象是普通的DependencyObjects或FrameworkElements或Controls?它们存在于您在Xaml中使用它们的同一个项目中? – AnthonyWJones 2010-02-11 11:06:53
我直接在普通页面的C#文件中编写了上面的代码(它是VS-2008生成的导航应用程序的一部分)。 – Juve 2010-02-11 14:23:14