с помощью кисти, хранящейся в ResourceDictionary - PullRequest
0 голосов
/ 29 октября 2019

Я новичок в WPF и хочу создать программу Brush, на которую можно ссылаться снова и снова. У меня есть кисть в ResourceDicitonary с полным определением.

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:PresentationOptions="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options">
   <DrawingBrush x:Key="rg1024_metal_effect" Stretch="Uniform">

Я добавил это в app.xaml.

 <Color x:Key="SteelBrush">#FFFFFF</Color>
 <SolidColorBrush x:Key="AppBrush" Color="{StaticResource rg1024_metal_effect}"/>

Но я получаю ошибку:

"rg1024_metal_effect не может быть разрешен"

Я знаю, что это должно быть легко, но для новичка, как я, - это не так просто.

Ответы [ 2 ]

1 голос
/ 29 октября 2019

Если вы определяете ресурс в ResourceDictionary с именем, например, «Dictionary1.xaml», и вы хотите сослаться на этот ресурс из другого ресурса, который вы определили в другом ResourceDictionary, например, например, App.xaml, вам следуетобъединить Dictionary1.xaml в App.xaml:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Dictionary1.xaml" />
        </ResourceDictionary.MergedDictionaries>
        <SolidColorBrush x:Key="AppBrush" Color="{StaticResource SteelBrush}"/>
    </ResourceDictionary>
</Application.Resources>

Dictionary1.xaml:

<Color x:Key="SteelBrush">#FFFFFF</Color>

В вашем примере rg1024_metal_effect не является Colorно DrawingBrush хотя. Вы не можете установить Color свойство SolidColorBrush в DrawingBrush.

1 голос
/ 29 октября 2019

Если вы хотите использовать Color в AppBrush, вам нужно определить его как <SolidColorBrush x:Key="AppBrush" Color="{StaticResource SteelBrush}"/>

Если вы хотите добавить эту кисть к кнопке, вы можете использовать ту жеКстати, например <Button Background="{StaticResource SteelBrush}"/> или создайте s Style для Button в своем словаре ресурсов

<Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}" x:Key="StyleKey">
    <Setter Property="Background" Value="{StaticResource SteelBrush}"/>
…
</Style>

...