Определить пользовательский интерфейс управления в WPF - PullRequest
0 голосов
/ 20 февраля 2019

Я создаю приложение в WPF, и мне нужно отобразить маленькое поле с флажком, парой меток и квадратом для цвета внутри него.Пока это выглядит так:

enter image description here

Он построен следующим образом: верхний элемент - Grid, внутри него - Button, CheckBox, Rectangle и Label.

Это вроде работает, но проблема в том, что я не могу ссылаться на него как на отдельный объект.Давайте назовем это поле BoxUiElement, и есть также класс, который хранит все данные для него (значения меток, значение цвета, флажок отмечен (bool)), давайте назовем этот класс Box.Итак, когда флажок установлен, я должен найти, к какому Grid он принадлежит, затем по этому Grid я найду, к какому экземпляру Box он относится, и изменить значение Box.IsChecked.

Я уверен, что это не очень ООП стиль, и должен быть способ создания пользовательского элемента управления UI, который будет работать так же, как простые Button работы, или Label работы, или любой другой элемент интерфейса работает.Я имею в виду, если вы поместите его в Grid, вы можете указать, в каком столбце / строке он будет находиться;если вы просто поместите его на Canvas, вы можете установить его положение, и оно будет отлично отрисовано.Вы меня понимаете.

Моя конечная цель - создать пользовательский элемент пользовательского интерфейса, который бы:

назывался BoxUiElement (или что-то еще) и не требовал бы ничего, кроме BoxUiElement myBoxUiElementInstance = new BoxUiElement();;поднять событие, когда отмечен ChechBox, поднять событие, если щелкнуть или дважды щелкнуть;поднять событие, когда на него что-то упало;и т. д.

До сих пор я много искал, но не нашел хороших примеров того, что я хочу - собрать несколько элементов в один.Я нашел несколько примеров стиля, и они предложили расширить, например, класс кнопки, XML-дизайн для него и добавить больше событий, но мне не просто нужна кнопка, это множество элементов, которые действуют как один элемент пользовательского интерфейса..

Самое близкое и достаточное, что я могу отнести к элементам пользовательского интерфейса в Android.Вы определяете каждый элемент отдельно, а затем можете объединить их.

...