|
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
|
||||||
Кастомная кнопка в UserControl или UserControl со свойствами кнопки01.09.2019, 19:54. Показов 16343. Ответов 128
Метки нет (Все метки)
Привет,
пытаюсь запихнуть кастомную кнопку в Useк Control. Что-то ерунда какая-то получается. Можете помочь? Хотелось бы UC со свойствами кнопки. Чтобы при клике меняла цвет своего Fill. и чтобы handle event был и binding работал, Также, от прилетаещего bool меняла свой Fill. Спасибо!
0
|
||||||
| 01.09.2019, 19:54 | |
|
Ответы с готовыми решениями:
128
Как разместить UserControl поверх другого UserControl Не сохраняются значения свойств заданные в дизайнере после создания своего UserControl с дополнительными свойствами
|
|
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
|
|
| 13.09.2019, 20:34 [ТС] | |
|
0
|
|
|
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
|
||
| 13.09.2019, 21:36 [ТС] | ||
|
1. Button в статическом положении. background = LightGray, border = DarkGray. 2. Button кликнули PressedBackground = Red, PressedBorder = Black. Цвета остаются пока еще раз не кликнут. 3. Button еще раз кликнули - статическое состояние как в п.1 Только не говорите что это элементарно.
0
|
||
|
Модератор
|
||
| 13.09.2019, 23:02 | ||
|
Поэтому в WPF контролы выбираются по ПОВЕДЕНИЮ. Для Button поведение это (в том числе) сохранять состояние нажатия только пока нажата кнопка мыши. То что вам нужно это другое поведение. И такому поведению соответствует контрол ToggleButton. Элементарно, мой дорогой Ватсон, элементарно!
0
|
||
|
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
|
||||||||||||
| 14.09.2019, 12:41 [ТС] | ||||||||||||
Code behind,
В состояние Unchecked можно подобрать идентичный цвет совпадающий со default стилем кнопки. Но это как вы говорите костыль. Как сделать получше что-ли?
0
|
||||||||||||
|
Модератор
|
|||||||||||||
| 14.09.2019, 13:08 | |||||||||||||
|
Пример
У меня эта панель убрана с экрана. Добавлено через 6 минут Более развитый пример
1
|
|||||||||||||
|
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
|
|
| 14.09.2019, 13:15 [ТС] | |
|
ОК, а не нарушая текущий стиль?
default background -не изменяется. IsChecked background -да.
0
|
|
|
Модератор
|
|||||||
| 14.09.2019, 13:24 | |||||||
|
Добавлено через 1 минуту Так?
1
|
|||||||
|
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
|
|||||||
| 14.09.2019, 13:53 [ТС] | |||||||
0
|
|||||||
|
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
|
|
| 14.09.2019, 14:56 [ТС] | |
|
На
mahapp не работает. У вас же есть мой проектик с mahapp ? Как оставить в живых весь стиль mahapp. И переопределить только Background IsChecked?F4 -property я не вижу настроек Background isСhecked.
0
|
|
|
Модератор
|
||||||||
| 14.09.2019, 17:29 | ||||||||
|
Или я не пойму что вы хотите сделать... В дефолтном шаблоне эти цвета заданы константами и они не доступны из вне. В Win7 (и возможно в Win 8.0) дефолтные шаблоны были иными и эти цвета задавались в системных кистях. Начиная с Win 8.1 были изменены дефолтные шаблоны и они задаются константами внутри шаблона. Здесь возникает ещё один нюанс в который я пока глубоко не вникал. Дефолтные шаблоны элементов определяются не Net платформой, а системой на которой запускается приложение. Поэтому одно и тоже приложение уже после компиляции может выглядеть по разному в разных ОС. А вот в том как менять эти дефолтные шаблоны я не разбирался. Но , вроде, их можно изменять, так применение тем, по-моему, работает через их изменение. Но точно как оно всё устроено я не знаю. Это одна из причин, по которой если вы создаёте приложение запускаемое на разных ОС и вам нужно самому полностью контролировать вид тех или иных контролов, то шаблоны всех этих контролов надо переопределять на уровне App. Делать это надо именно через словарь шаблонов, а не через UC. Реализация UC для такого через чур затратна. Даже в созданном мною UC ButtonPolygon сам UC должен быть без шаблона. Шаблон должен быть в отдельном словаре который подключается к App. Но здесь я тоже ещё не совсем разобрался. Если объявить дефолтные шаблоны на уровне приложения, то как потом делать производные от него стили? Мне приходится делать их через наследование, но это костыль. А как установить в стиле одно свойство не трогая других я не знаю. Вот допустим в таком примере
Хотя выше в стиле он объявлен красным. Как сделать стили работающие аналогично дефолтным я не знаю.
0
|
||||||||
|
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
|
||||||||||||
| 14.09.2019, 18:30 [ТС] | ||||||||||||
текущий прекрасный стиль, и переопределить ТОЛЬКО ЧТО НУЖНО.
У меня теперь другой вопрос! В отдельную тему напишу.
0
|
||||||||||||
|
Модератор
|
||||||||
| 14.09.2019, 19:12 | ||||||||
|
За это я вам уже писал Не знаю даже возможно это или нет. Кроме того для этого надо знать действующий стиль на данном уровне. А это далеко не всегда бывает дефолтный системный. Шаблоны элементов устанавливаются на уровне App и если задать им наследование от базового системного шаблона, то стили ниже по уровню не смогут на него влиять. Ниже пример. В ресурсах окна определён нужный нам стиль с шаблоном для переключателя (ToggleButton). Обычно такой шаблон бывает ещё выше - в словаре подключенном к App. Цвет фона выключенной кнопки в нём не установлен. В контейнере Grid я устанавливаю для всех переключателей цвет фона красным. Но переключатель с нашим стилем не подхватывает этот красный цвет. Переключатель же без стиля подхватывает. То есть мы получаем разное поведение там где это нам не нужно. Приходится за этим специально следить.
1
|
||||||||
|
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
|
|
| 03.10.2019, 10:39 [ТС] | |
|
Элд Хасп,
Интересно, вот кнопка имеет свой static.Background и static.Border. И они меняются при событии "IsPressed", "IsMouseOver". Moжно ли дополнительно менять Background через binding ViewModel? Конфликтовать не будут?
0
|
|
|
Модератор
|
|
| 03.10.2019, 12:00 | |
|
Ахромчон, почитайте начало этой темы.
Я уже объяснял. В дефолтном шаблоне кисти задают цвета только обычного состояния кнопки. Все остальные цвета (кнопка нажата, наведён курсор, неактивна) заданы константами. Изменить эти цвета не задав свой шаблон - невозможно. В этой теме показано как можно задать свойства для цветов в разных состояниях.
0
|
|
|
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
|
|
| 03.10.2019, 15:24 [ТС] | |
|
Элд Хасп,
Возможно такое, Polygon т.к. не имеет background, но при этом у него есть Fill. Можно управлять Fill при помощи события PreviewMouseLeftButtonDown? Другими словами, нажимаешь на контрол (в базе polygon), цвет Fill меняется, отпускаешь цвет Fill по умолчанию.
0
|
|
|
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
|
||
| 03.10.2019, 15:51 [ТС] | ||
|
Эта кнопка на базе baseButton, в которую вставлен polygon. Тут проще, так как все наследуется от кнопки.А я спрашиваю на базе polygon. просто UC с polygon. Как тут?
0
|
||
| 03.10.2019, 15:51 | |
|
Управление usercontrol из другого usercontrol Вызов свойства кнопки на другом UserControl.xaml.cs
WPF MVVM View и ViewModel или UserControl и DependencyProperty Можно ли рисовать сразу на UserControl без Canvas или Grid Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|