自定义已知颜色名称我WPF

问题描述 投票:-3回答:3

我想要做的是定义我自己的一组已知颜色名称,WPF将使用“Red”来查找它,在这种情况下称为CustomRed,它适用于应用程序范围。

// Custom known name, this is what i would like to do.
<Border Background="CustomRed"></Border>

// System color name.
<Border Background="Red"></Border>

// Static hex value.
<Border Background="#FF0000"></Border>

// Bind to data context.
<Border Background="{Binding CustomRed}"></Border>
c# wpf colors
3个回答
1
投票

您可以将其定义为资源。在资源字典中定义如下:

<SolidColorBrush x:Key="CustomRed">#FF0000</SolidColorBrush>

然后像这样使用它:

<Border Background="{StaticRecource CustomRed}"></Border>

0
投票

添加到@ MahdiAtaollahi的答案,您还可以使用ARGB值而不是十六进制值:

<Window.Resources>
    <SolidColorBrush x:Key="LikeGreen">
        <SolidColorBrush.Color>
            <Color R="100" G="200" B="30" A="100"/>
        </SolidColorBrush.Color>
    </SolidColorBrush>
</Window.Resources>

并使用它:

<Button Background="{StaticResource LikeGreen}"/>

0
投票

XAML处理器使用TypeConverters将字符串值转换为属性的实际类型。这就是字符串'Red'如何转换为背景属性的SolidColorBrush Brushes.Red。虽然您可以定义自己的TypeConverter,但遗憾的是您只能将它附加到您自己的类型,因为您需要将TypeConverterAttribute添加到该类型中。无法将自定义TypeConverter与“刷子”或“颜色”等框架类相关联。

使用StaticResource或DynamicResource标记扩展名为@MahdiAtaollahi,是您可以获得的最接近的。

© www.soinside.com 2019 - 2024. All rights reserved.