Используйте линейный разброс в другом линеарграгрейдере?

StackOverflow https://stackoverflow.com/questions/3708817

Вопрос

Я пытаюсь использовать один LinearGradientBrush в определении другого линеаргрейдриента. Но я понятия не имею погоду, это даже сработает, и если это сработает, мне нужно знать, как.

Например:

    <LinearGradientBrush x:Key="ComboBoxFocusBackgroundBrush" EndPoint="0.5,1" StartPoint="0.5,0">
        <GradientStop Color="#FFFDEEB3" Offset="0"/>
        <GradientStop Color="#FFFBF2CD" Offset="1"/>
        <GradientStop Color="#FFFCE48A" Offset="0.5"/>
        <GradientStop Color="#FFFBE388" Offset="0.75"/>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="FilterPopupTitleBrush" EndPoint="0.5,1" StartPoint="0.5,0">
        <GradientStop Color="#B45988" Offset="0.75"/>
        //Code here to use ComboBoxFocusBackgroundBrush
        <GradientStop Color="#990088" Offset="0.75"/>
    </LinearGradientBrush>

Благодарю вас в ожидании ваших ответов

РЕДАКТИРОВАТЬ: Чтобы стать немного более ясным в примере, который я хочу использовать «Comboboxfocusbackgroushrush» в «FilterPuptitlebrush» в качестве «шаблона». Так что я один и тот же цветовой градиент в обеих кистях без копии «u003CGradientStop...> "-tags

Это было полезно?

Решение

Вы можете поделиться списком градиентных остановок между несколькими кистями, например,:-

<GradientStopCollection x:Key="MyGradient">
    <GradientStop Color="#FFFDEEB3" Offset="0"/> 
    <GradientStop Color="#FFFBF2CD" Offset="1"/> 
    <GradientStop Color="#FFFCE48A" Offset="0.5"/> 
    <GradientStop Color="#FFFBE388" Offset="0.75"/> 
</LinearGradientBrush> 

<LinearGradientBrush x:Key="ComboBoxFocusBackgroundBrush" EndPoint="0.5,1" StartPoint="0.5,0"
   GradientStops="StaticResource MyGradient}" /> 

<LinearGradientBrush x:Key="FilterPopupTitleBrush" EndPoint="0.5,1" StartPoint="0.5,0"
    GradientStops="{StaticResource MyGradient}" /> 

Теперь вы можете изменить EndPoint, StartPoint и другие свойства создают разные варианты одного и того же основного градиента.

Вы даже можете предоставить тот же набор RadialGradientBrush.

Другие советы

Обмен другим способом сделать это, вам не нужно создавать отдельную коллекцию, вы также можете повторно использовать существующую кисть, подобную

<LinearGradientBrush x:Key="FilterPopupTitleBrush" GradientStops="{Binding GradientStops, Source={StaticResource ComboBoxFocusBackgroundBrush}}"/>

Этот способ создания пользовательской кисти, основанной на существующей кисти, будет полезен, если вы хотите расширить предопределенные темы, такие как Telerik темы, где это не было бы хорошим подходом для изменения XAML от Телерика.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top