J'ai cette bibliothèque avec des propriétés personnalisées Couleur. Je veux être en mesure d'utiliser ces propriétés en XAML comme ceci:Comment définir une propriété personnalisée en tant que valeur XAML?
<Style TargetType="{x:Type eg:MyWindow}">
<Setter Property="Background">
<Setter.Value>
<SolidColorBrush Color="CustomClass.CustomColorProperty"/>
</Setter.Value>
</Setter>
</Style>
L'espace de noms qui contient est déjà référencé CustomClass. Comment dois-je m'y prendre? Merci.
EDIT:
Je viens de remarquer que CustomClass est statique, donc je ne peux pas créer une instance de celui-ci en XAML. En outre, lorsque je tape par exemple:, CustomClass n'apparaît pas dans intellisense. Je ne peux pas faire fonctionner vos solutions, même si elles le devraient, si j'avais une classe d'instance. Y at-il une solution de contournement pour cette situation?
EDIT 2:
Ceci est la classe réelle et espace de noms:
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");
}
}
}
Et c'est l'espace de noms XAML:
xmlns:aw="clr-namespace:Assergs.Windows;assembly=Assergs.Windows"
Et si j'utilise cette ligne, comme le suggère Zenuka:
<SolidColorBrush Color="{x:Static aw:OfficeColors.Background.OfficeColor1}"/>
Il jette cette erreur au moment de la compilation:
Cannot find the type 'OfficeColors.Background'. Note that type names are case sensitive.
Est-ce que l'espace de noms « par exemple » support pour l'espace de noms de la CustomClass est trouvé dans?Et la CustomClass est-elle déclarée publique (ou d'une autre manière accessible)? – Zenuka
Oui et oui. Je peux accéder à CustomClass à partir de code-behind, mais je ne peux pas en XAML. – sker
Eh bien, si vous pouvez y accéder à partir du code derrière alors quelque chose devrait mal dans l'include XAML, pourriez-vous partager la ligne xmlns: eg = "....." et le haut de la CustomClass (Namespace et déclaration de classe). .. – Zenuka