Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2008 创建在XAML中具有代码完成的属性或DependencyProperties_Visual Studio 2008_Silverlight_Xaml_Silverlight 3.0_Dependency Properties - Fatal编程技术网

Visual studio 2008 创建在XAML中具有代码完成的属性或DependencyProperties

Visual studio 2008 创建在XAML中具有代码完成的属性或DependencyProperties,visual-studio-2008,silverlight,xaml,silverlight-3.0,dependency-properties,Visual Studio 2008,Silverlight,Xaml,Silverlight 3.0,Dependency Properties,我正在尝试创建DependencyProperties,当在VisualStudio的XAML编辑器中使用它们时,它们有一个很好的下拉代码完成 许多默认的SilverLight框架属性都有这样的完成,例如,Background或BorderBrush。另外,Boolean属性在XAML编辑器中显示True/False选择。这同样适用于DependencyProperties,例如Canvas.Top和Canvas.Left等 我试图定义自己的类型Color或Boolean的DependencyP

我正在尝试创建DependencyProperties,当在VisualStudio的XAML编辑器中使用它们时,它们有一个很好的下拉代码完成

许多默认的SilverLight框架属性都有这样的完成,例如,
Background
BorderBrush
。另外,
Boolean
属性在XAML编辑器中显示
True
/
False
选择。这同样适用于DependencyProperties,例如
Canvas.Top
Canvas.Left

我试图定义自己的类型
Color
Boolean
的DependencyProperties,因为我相信默认类型(如Color、Brush和Boolean)可以免费完成。这并没有发生

我相信我必须为我的属性定义一些注释,但没有找到示例,因为SilverlightSDK只显示Visual Studio中的公共API,而没有显示内部

你有没有想法,如何获得代码完整的属性

更新:下面是我在Silverlight 3中尝试做的一个例子(!)我刚刚和一位同事谈过,他认为问题与Silverlight 3和VS2008中的旧非VS2010-XAML-editor有关

XAML:

<Grid x:Name="LayoutRoot">
  <Border test:PropTest.Test="Blue">
    <TextBlock Text="123"/>
  </Border>
</Grid>

此示例是可编译/可运行的,但我希望使用
dependencProperties
编写API,而不是应用程序,因此我希望API的代码完成。:)

对于已知类型,无需执行任何特殊操作即可获得intellisense帮助。例如
画笔
颜色
布尔值
。然而,intellisense在VS2008中有点慢,可能需要相当长的时间来构建。即使在内置控件上,它也可能非常温和

如果对象与正在编辑的Xaml位于同一个项目中,请尝试构建该项目


你唯一能做的另一件事就是耐心等待。

我刚刚找到了解决方案,至少对于
Color
来说,它现在正在工作。我将尝试用其他类型测试它。我将代码直接放在应用程序中,这首先是一种不好的做法,因为我正在尝试编写API,其次是导致缺少代码完成

上述与财产相关的代码应放入一个单独的库中,并由项目使用该代码引用(例如,一个应用程序)。然后它就开始工作了


接下来,我将尝试编写自己的完成类,类似于
Colors
类型的
Colors
类,看看是否可以为自己的类型编写竞赛代码。但这可能是另一个问题。

对象是纯依赖对象还是框架元素或控件?它们存在于您在Xaml中使用它们的同一个项目中?我直接在普通页面的C#-文件中编写了上述代码(这是VS-2008生成的导航应用程序的一部分)。
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;
    }
  }
}