powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / checkbox изменение галочки при фокусе
12 сообщений из 12, страница 1 из 1
checkbox изменение галочки при фокусе
    #37998064
mr Vap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подскажите
нужно настроить checkbox так чтобы IsChecked менялся только если на checkbox установлен фокус
...
Рейтинг: 0 / 0
checkbox изменение галочки при фокусе
    #37998618
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr Vap,

Давно не заходил на сайт - это я про себя.
Тебе надо посмотреть в сторону стиля CheckBox. А именно, сделай так, что если IsFocused=False (как триггер), то у CheckBox свойству IsEnabled=True
...
Рейтинг: 0 / 0
checkbox изменение галочки при фокусе
    #37998624
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unknownfromrus,

Поправлю себя))

В стиде у чекбокса должно быть что-от вроде

<Trigger Property="IsFocused" Value="False">
<Setter Property="IsEnabled" Value="False"/>
</Trigger Property="IsFocused" Value="False">
...
Рейтинг: 0 / 0
checkbox изменение галочки при фокусе
    #37998658
mr Vap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
unknownfromrus,

это не подходит к тому же IsEnabled используется

может я не правильно описал задачу
при нажатие на чек галка ставиться или убирается а мне надо чтобы
нажал на чек он получил фокус галка не изменилась
нажал еще раз галка изменилась

те чтобы галка ставилась или снималась только по второму клику
...
Рейтинг: 0 / 0
checkbox изменение галочки при фокусе
    #37998747
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr Vap,
В порядке каламбура:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
        private DispatcherTimer timer = new DispatcherTimer() {Interval = new TimeSpan(0,0,0,0,100)};
        private void checkBox_GotFocus(object sender, RoutedEventArgs e) {
            timer.Tick += (s, ea) => {
                timer.Stop();
                ch.IsChecked = false;
            };
            timer.Start();
        }


P.S. Вам колонке грида такое поведение checkbox понадобилось?
...
Рейтинг: 0 / 0
checkbox изменение галочки при фокусе
    #37998940
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr Vap,

Во втором твоем описании задача стала более ясной.

Копаем в ту же сторону:
Переопределяем CheckBox (для удобства сделать лучше через стил ь- даже если переопределить весь контрол).
В базовом стиле написана логика получения фокуса и логика получения состояния IsChecked.
Таким образом обрбатываешь событие клик (не в code-behind - в WPF мне кажется надо максимально стараться использовать XAML).
У тебя полчится такой алгоритм:

1. Обрабатываем анимацию Click и устанавливаю фокус - IsFocused в true
2. Если изначально IsFocused был false - то IsChecked не трогаем.
3. Если был клик и IsFocused был равен true, то свойству IsChecked приравниваем true.

Как-то так
я бы накидал тебе пример - но времени не хватает.
Если не получится - то на этой неделе или к выходным могу накидать пример.
...
Рейтинг: 0 / 0
checkbox изменение галочки при фокусе
    #37999620
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr Vapподскажите
нужно настроить checkbox так чтобы IsChecked менялся только если на checkbox установлен фокус
Checkbox вообще-то так устроен, что у него IsChecked меняется тогда, когда в нем фокус. Даже если этот чекбокс перестайлен, в т.ч. с OverridesDefaultStyle = true. Если вы не видите вокруг CheckBox отрисовки FocusVisualStyle, то это вовсе не значит, что фокуса там нет.
Проверяется всё это легко:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class NeedFocusCheckBox: CheckBox
{
  protected override void OnToggle()
  {
    Console.WriteLine("OnToggle: {0} {1} {2}",
      IsFocused, IsKeyboardFocused, IsKeyboardFocusWithin);
    base.OnToggle();
  }
}
...
Рейтинг: 0 / 0
checkbox изменение галочки при фокусе
    #37999751
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,

Ну с этми никто не спорит. Я думаю ползователь знает это.
Но это все внутренняя кухня. Можно попробовать перестроить логику чекбокса в стиле - желательно обойтись только XAML
...
Рейтинг: 0 / 0
checkbox изменение галочки при фокусе
    #37999752
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,

То есть внутренняя кухня пусть будет известна только разработчику. ГНлавное что показатель пользователь и какую засадить логику для пользователя
...
Рейтинг: 0 / 0
checkbox изменение галочки при фокусе
    #38000036
mr Vap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да это все понятно... и кухня и фокус

у меня чек перестроен в нем сидят еще элементы с данными которые можно и нужно менять
когда юзер нажимает на чек чтобы изменить(например дату) галочка убирается в этом то вся проблема (нужно чтоб убиралась только по второму клику)

конечно я сейчас перевел все это в юзерконтрол но хотелось бы реализовать все это на чекбоксе в XAMLе для общего развития.
...
Рейтинг: 0 / 0
checkbox изменение галочки при фокусе
    #38001610
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,
авторCheckbox вообще-то так устроен, что у него IsChecked меняется тогда, когда в нем фокус. Даже если этот чекбокс перестайлен, в т.ч. с OverridesDefaultStyle = true. Если вы не видите вокруг CheckBox отрисовки FocusVisualStyle, то это вовсе не значит, что фокуса там нет.
То есть, если очень надо то, что описал ТС, то проще пересобрать/переписать чекбокс под свои требования?
...
Рейтинг: 0 / 0
checkbox изменение галочки при фокусе
    #38001868
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enigmaticТо есть, если очень надо то, что описал ТС, то проще пересобрать/переписать чекбокс под свои требования?
Да, причем с другим базовым классом (чекбокс унаследован от ToggleButton).
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / checkbox изменение галочки при фокусе
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]