【问题标题】:Where does Intellisense look for options for the Brush property in XAML editing?Intellisense 在哪里寻找 XAML 编辑中 Brush 属性的选项?
【发布时间】:2012-06-01 06:56:13
【问题描述】:

在 WPF 应用程序中,如果我想创建一个矩形,我开始在 XAML 中编写:

<Rectangle Fill=

在我输入最后一个= 字符后,Visual Studio 的 Intellisense 会给我这个Fill 属性的一系列选项,例如 AliceBlue、AntiqueWhite 等。我发现这些常量来自Brushes 类,但在我自己的类中定义的常量不会包含在该属性的选项列表中。所以我有两个问题。

  1. 属性Fill 的类型为BrushBrush 类型是普通类型,不是枚举类型。 Intellisense 如何为此类属性寻找选项?
  2. Intellisense 是否可以将在 WPF 核心程序集之外定义的对象视为特定属性的选项?

谢谢

【问题讨论】:

    标签: wpf visual-studio xaml intellisense


    【解决方案1】:

    智能感知从System.Windows.Media.Brushes 中提取,这只是几个默认的SolidColorBrush 值。不过,您可以使用任何画笔类型,例如 LinearGradientBrushRadialGradientBrushImageBrush。如果您想定义自己的颜色,您可以使用颜色的十六进制值(例如,#FFFF0000,对于 aRGB 值 255 不透明度、255 红色、0 绿色、0 蓝色),或者您可以在 XAML 中定义资源并使用 @987654326 引用它们@ 或 DynamicResource(如果您打算在运行时更改此值)。

    Intellisense 使用反射来查找变量、方法和函数。该颜色列表来自此类,如下所示:

    public sealed class Brushes {
        public static SolidColorBrush AliceBlue {
            get {
                return KnownColors.SolidColorBrushFromUint(-984833);
            }
        }
    
        public static SolidColorBrush AntiqueWhite {
            get {
                return KnownColors.SolidColorBrushFromUint(-332841);
            }
        }
    }
    

    不确定您在第二个问题中到底要问什么,但它只会提供与给定程序集直接相关的内容。如果你能澄清这个问题,请做。

    【讨论】:

    • 是的,我知道这些颜色文字来自 Brushes 类。我想问的是 Intellisense 在哪里搜索 Brush 实例?它是在定义类 Brush 的命名空间中搜索它们,还是在整个 wpf 核心程序集中,或在我的项目中(可能包含对其他程序集的引用)?
    【解决方案2】:

    Intelisense 正在向您显示列表,因为这里有这些定义 xs:attributename="Fill" type="StringToBrushConverter"/

    看一下StringToBrushConverter的定义

    name="StringToBrushConverter">
        pattern value="AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenrod|DarkGray|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGray|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGray|DodgerBlue|Firebrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|Goldenrod|Gray|Green|GreenYellow|Honeydew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenrodYellow|LightGray|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGray|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquamarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenrod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGray|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen"/>
        </xs:restriction>
      </xs:simpleType>
    

    一切都取自本地化的 WPFe 模式:C:\Program Files (x86)\Microsoft Visual Studio 11.0\Xml\Schemas

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-11
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 2015-01-16
      • 1970-01-01
      相关资源
      最近更新 更多