|
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
|
||||||
Кастомная кнопка в UserControl или UserControl со свойствами кнопки01.09.2019, 19:54. Показов 16236. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|