WPF / Styles: установка значений свойств элементов шаблона - PullRequest
2 голосов
/ 11 ноября 2010

Предположим, у меня есть стиль вроде

<Style x:Key="NotificationItemTemplate" TargetType="{x:Type ListBoxItem}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ListBoxItem}">
                <DockPanel LastChildFill="False">
                    <DockPanel.Background>
                        <LinearGradientBrush>
                            <GradientStop Offset="0" Color="#FF565656" /> <!-- How to change color values -->
                            <GradientStop Offset="1" Color="#FF353535" />
                        </LinearGradientBrush>
                    </DockPanel.Background>
                    ...
                </DockPanel>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Как я могу установить значение цвета остановки градиента, как указано выше, на другой цвет, скажем, в MouseOver, я знаю, что использую триггер, но как мне обратиться к этому значению цвета?

1 Ответ

2 голосов
/ 11 ноября 2010

К сожалению, я не уверен, что вы можете сделать это для одной остановки градиента.Скорее всего, вам придется вызвать, чтобы изменить всю кисть фона:

<Style TargetType="{x:Type ListBoxItem}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ListBoxItem}">
                <DockPanel LastChildFill="False" x:Name="dock">
                    <DockPanel.Background>
                        <LinearGradientBrush>
                            <GradientStop Offset="0" Color="#FF565656" />
                            <!-- How to change color values -->
                            <GradientStop Offset="1" Color="#FF353535" />
                        </LinearGradientBrush>
                    </DockPanel.Background>
                    <ContentPresenter />
                </DockPanel>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter TargetName="dock" Property="Background">
                            <Setter.Value>
                                <LinearGradientBrush>
                                    <GradientStop Offset="0" Color="#00CDFFFF" />
                                    <!-- How to change color values -->
                                    <GradientStop Offset="1" Color="#FF343465" />
                                </LinearGradientBrush>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...