2012-05-25 41 views
3

在WPF應用程序,如果我想創建一個矩形,我開始在XAML來寫:Intellisense在XAML編輯中尋找Brush屬性的選項?

<Rectangle Fill= 

後我輸入最後=字符時,Visual Studio的智能感知會給我一堆這個Fill屬性的選項,如AliceBlue,AntiqueWhite等。我發現這些常量來自類Brushes,但在我自己的類中定義的常量不會包含在該屬性的選項列表中。所以我有兩個問題。

  1. 屬性FillBrush的類型。類型Brush是一種普通類型,不是枚舉類型。 Intellisense如何尋找這樣一個屬性的選項?
  2. Intellisense是否有可能將在WPF的核心程序集之外定義的對象視爲特定屬性的選項?

感謝

回答

0

智能感知就會從System.Windows.Media.Brushes這只是一對夫婦的默認SolidColorBrush值。不過,您可以使用任何畫筆類型,例如LinearGradientBrush,RadialGradientBrushImageBrush。如果要定義自己的顏色,則可以使用顏色的十六進制值(例如,對於aRGB值255不透明度,255紅色,0綠色,0藍色,#FFFF0000),或者可以在XAML中定義資源並使用StaticResourceDynamicResource(如果您打算在運行時更改此值)。

Intellisense使用反射來查找變量,方法和函數。顏色這份名單來自這個類,它看起來像這樣:

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

    public static SolidColorBrush AntiqueWhite { 
     get { 
      return KnownColors.SolidColorBrushFromUint(-332841); 
     } 
    } 
} 

不知道你問的第二個問題到底是什麼,但它只會提供什麼給定組件直接相關。如果你能澄清這個問題,請做。

+1

是的,我知道這些顏色文字來自'Brushes'類。我想問的是Intellisense在哪裏搜索'Brush'實例?它是在定義類「Brush」的名稱空間中,還是在整個wpf核心程序集或我的項目(可能包含對其他程序集的引用)中搜索它們? – weidi

0

智能感知正顯示出你的清單,是因爲這裏 xs:attributename="Fill" type="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 schemma採取定位於StringToBrushConverter的deffinition:C:\ Program Files文件( x86)\ Microsoft Visual Studio 11.0 \ Xml \ Schemas