locked
Как переопределить цвет отключённой кнопки? RRS feed

  • Вопрос

  • Нужно чтобы, по событию, кнопка переставала реагировать на нажатие и меняла цвет.. сейчас отписываюсь от нажатия просто отключением кнопки(IsEnabled= False).. проблема в том, что при этом её цвет становится равным фону грида, а мне нужна чтоб она просто тускнела или становилась прозрачнее.. посоветуйте как этого можно добиться?
    25 августа 2013 г. 23:11

Ответы

  • Добрый день.

    Очень хорошая статья про стилизацию кнопок. Там как раз есть пример, как менять внешний вид кнопки в зависимости от ее состояния (нажата, недоступна и т.д.). Прочитайте, попробуйте. Если будут вопросы, пишите.

    • Предложено в качестве ответа Oleg Kurzov 26 августа 2013 г. 16:02
    • Помечено в качестве ответа CheeGer 26 августа 2013 г. 21:11
    26 августа 2013 г. 7:01
    Отвечающий

Все ответы

  • Чтобы изменить цвет элемента управления в теме, необходимо переопределить соответствующую кисть (к примеру, в App.xaml или же в StandardStyles.xaml).

    Пример:

    <SolidColorBrush x:Key="AppBarBackgroundThemeBrush" Color="#E5000000" />

    Список всех кистей можно найти здесь: System brushes

    26 августа 2013 г. 6:18
  • предлагаю переопределить события кнопки override onpaint(painteventargs e)

    protected override void OnPaint(PaintEventArgs peven) { if (IsEnabled) { base.OnPaint(peven); } else {

    base.OnPaint(peven); Brush b = new SolidBrush(Color.White); //здесь меняете цвет на нужный peven.Graphics.FillRectangle(b, ClientRectangle); b.Dispose(); } }


    p.s. написал по памяти, если ошибка не судите

    p.s.s. создайте user Control наследуя от Button, и впишите код. все должно получится




    26 августа 2013 г. 6:49
  • Добрый день.

    Очень хорошая статья про стилизацию кнопок. Там как раз есть пример, как менять внешний вид кнопки в зависимости от ее состояния (нажата, недоступна и т.д.). Прочитайте, попробуйте. Если будут вопросы, пишите.

    • Предложено в качестве ответа Oleg Kurzov 26 августа 2013 г. 16:02
    • Помечено в качестве ответа CheeGer 26 августа 2013 г. 21:11
    26 августа 2013 г. 7:01
    Отвечающий