在 XAML 中应用自定义画笔

Apply custom brush in XAML

我定义了自定义画笔,如 How to define and use resources in xaml so they can be used in C# 中所述。

然而,当我尝试将其分配给 Shape.FillShape.Stroke 属性 时,如下所示:

<Rectangle Stroke="MyBrush"/>

我的应用程序崩溃 XamlParseException。那么如何仅使用 XAML 代码分配自定义画笔?

ResourceDictionary 中创建一个 Brush 资源,然后您可以在您的控件定义中引用它:

<SolidColorBrush x:Key="MyBrush">#727272</SolidColorBrush>

或者:

<SolidColorBrush x:Key="MyBrush" Color="Red"/>

用法:

<Rectangle Stroke="{DynamicResource MyBrush}"/>

一旦进入 XAML 就不能简单地指定资源名称

<Rectangle Stroke="{Binding Source={StaticResource OfferByBrand}}"/>

如果您是通过代码进行绑定,并且它本身就是预定义的,或者

<Rectangle Stroke="{DynamicResource OfferByBrand}"/>

如果在 res 中指定。 否则如回答您需要使用

通过 C# 访问
Application.Current.Resources["BlaBrush"] as LinearGradientBrush

一定要去看看 Resources