我有这个库定制颜色属性。我想能够在XAML中使用这些属性是这样的:如何将自定义属性设置为XAML值?
<Style TargetType="{x:Type eg:MyWindow}">
<Setter Property="Background">
<Setter.Value>
<SolidColorBrush Color="CustomClass.CustomColorProperty"/>
</Setter.Value>
</Setter>
</Style>
包含CustomClass已经被引用的命名空间。我应该怎么做呢?谢谢。
编辑:
我只注意到CustomClass是静态的,所以我不能在XAML中创建它的一个实例。此外,当我输入例如:,CustomClass未显示在intellisense中。如果我有一个实例类,我不能得到任何解决方案的工作,即使他们应该这样做。有这种情况的解决方法吗?
编辑2:
这是实际的类和命名空间:
namespace Assergs.Windows
{
public static class OfficeColors
{
public class Background
{
public static Color OfficeColor1 = (Color)ColorConverter.ConvertFromString("#e4e6e8");
public static Color OfficeColor2 = (Color)ColorConverter.ConvertFromString("#dce0ed");
public static Color OfficeColor3 = (Color)ColorConverter.ConvertFromString("#a8c3e0");
}
}
}
这是XAML命名空间:
xmlns:aw="clr-namespace:Assergs.Windows;assembly=Assergs.Windows"
如果我用这条线,如建议Zenuka:
<SolidColorBrush Color="{x:Static aw:OfficeColors.Background.OfficeColor1}"/>
它在编译时抛出这个错误:
Cannot find the type 'OfficeColors.Background'. Note that type names are case sensitive.
请问“如”命名空间代表的命名空间CustomClass被发现在?CustomClass是否声明为public(或另一种可访问的方式)? – Zenuka 2009-10-28 08:42:40
是的,是的。我可以从代码隐藏中访问CustomClass,但我无法在XAML中使用。 – sker 2009-10-28 08:59:55
那么如果你可以从后面的代码访问它,那么XAML包含的内容应该是错误的,你可以共享这行xmlns:eg =“.....”和CustomClass(名称空间和类声明)的顶部。 .. – Zenuka 2009-10-28 09:21:11