Как скопировать ресурс WPF в xaml? - PullRequest
4 голосов
/ 03 ноября 2008

Я хочу назначить ресурс, у которого уже есть второе имя, аналогично использованию свойства BasedOn в Styles. В частности, у меня есть кисть, которую я использую для группы элементов с именем ForegroundColor, и я хотел бы использовать ее в шаблоне элемента управления (ComboBox), называя его MouseOverBackgroundBrush. Я хотел бы сделать что-то вроде этого:

<ResourceCopy x:key="MouseOverBackgroundBrush" Value="{StaticResource ForegroundColor}" />

Есть ли способ сделать это или есть лучший способ сделать это в Xaml?

Ответы [ 2 ]

3 голосов
/ 04 ноября 2008

Эта функция не очень хорошо поддерживается в XAML. Я считаю, что вам нужно будет либо повторить себя (и поменять оба местоположения в любое время, когда вам понадобится сменить кисть) или , если вы не возражаете против небольшого кода, вы можете выполнить дублирование следующим образом :

Resources["MouseOverBackgroundBrush"] = Resources["ForegroundColor"];
1 голос
/ 04 ноября 2008

Я не знаю, как скопировать ресурс в xaml (можно ли это сделать?), Как вы просите ... но вот один из способов выполнить то, что вы пытаетесь сделать:

<Color x:Key="firstColor">#FFD97A7A</Color>
<Color x:Key="secondColor">#FFF4BFBF</Color>
<LinearGradientBrush x:Key="firstGradientBrush" EndPoint="0.5,1" StartPoint="0.5,0">
    <GradientStop Color="{DynamicResource firstColor}" Offset="0"/>
    <GradientStop Color="{DynamicResource secondColor}" Offset="1"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="secondGradientBrush" EndPoint="0.5,1" StartPoint="0.5,0">
    <GradientStop Color="{DynamicResource firstColor}" Offset="0"/>
    <GradientStop Color="{DynamicResource secondColor}" Offset="1"/>
</LinearGradientBrush>

По сути, создайте две разные кисти на основе некоторых распространенных цветов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...