Как изменить цвет кнопки onmoveover, onmouseleave в wpf при помощи триггеров или любых других событий

Вдохновленный реализацией @ dicegiuy30, я хотел создать версию, которая перебирает исходный код только один раз и не создает полный набор результатов в памяти для компенсации. Лучшее, что я придумал, это:

public static IEnumerable<IEnumerable<T>> Split2<T>(this IEnumerable<T> source, int chunkSize) {
    var chunk = new List<T>(chunkSize);
    foreach(var x in source) {
        chunk.Add(x);
        if(chunk.Count <= chunkSize) {
            continue;
        }
        yield return chunk;
        chunk = new List<T>(chunkSize);
    }
    if(chunk.Any()) {
        yield return chunk;
    }
}

Таким образом, я строю каждый блок по требованию. Хотел бы я также избегать List<T> и просто транслировать это, но пока не понял этого.

5
задан Dave Clemmer 1 August 2011 в 15:53
поделиться

1 ответ

Внутри желаемого события вы можете установить цвет фона следующим образом ...

// Change the background color of button1 to Blue
button1.Background = Brushes.Blue;

Вы также можете установить это в триггере:

<!-- Button will change from Blue to Yellow on MouseOver -->
<Style TargetType="{x:Type Button}">
    <Setter Property="Background" Value="Blue" />
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Background" Value="Yellow" />
        </Trigger>
    </Style.Triggers>
</Style>

Для получения более подробной информации , ознакомьтесь с разделом Триггеры свойств в этой статье.

5
ответ дан 14 December 2019 в 19:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: